多语言展示
当前在线:1787今日阅读:103今日分享:49

python的matplotlib实现指数函数积分的绘图

python是目前使用最广泛的编程语言,因为目前正处于大数据时代;目前大数据中可视化技术至关重要,而python的matplotlib是最主要的可视化库,下面如何绘制积分函数的图形
工具/原料
1

anaconda,spyder,python3,matplotlib,numpy,pyplot,patches,Polygon

2

exp,linspace,subplots,figsize,plot,linewidth,ylim,zip,list,facecolor,edgecolor,add_patch,text,figtext,horizontalalignment,fontsize,set_xticks,set_yticks,set_xticklabels,set_yticklabels,grid

方法/步骤
2

积分函数的上下限和定义域取值范围。a,b=0.5,2表示a和b分别赋值为0.5和2;x=np.linspace(0,2.5)表示定义域x的取值为0~2.5之间的等差数列,默认取50个;如图所示

3

绘制图形。fig,ax=plt.subplots(figsize=(8,5))表示绘制一个8*5的图形;plt.plot(x,y,'b',linewidth=2)表示线条颜色为蓝色,线宽为2;plt.ylim(ymin=0)表示Y轴最小值为0;如图所示

4

根据积分取值的上下限,使用Polygon函数填充积分面积。from matplotlib.patches import Polygon表示需要加载一下Polygon函数;verts=[(a,0)]+list(zip(Ix,Iy))+[(b,0)]表示积分的区域;poly=Polygon(verts,facecolor='0.7',edgecolor='0.5')表示使用Polygon函数填充积分区域的面积,表面颜色是0.7,边沿颜色是0.5;ax.add_patch(poly)表示将填充的面积添加到图表中;如图所示

5

给图表添加数学公式和坐标轴标签等。plt.text(0.5*(a+b),1,r'$\int_a^b f(x)\mathrm{d}x$',         horizontalalignment='center',fontsize=20)表示在(0.5*(a+b),1)的位置给图表添加一个积分公式,字体是20,积分上下限为a~b,函数是f(x),而horizontalalignment='center'表示水平居中对齐;plt.figtext(0.9,0.075,'$x$')和plt.figtext(0.075,0.9,'$f(x)$')分别表示给X轴和Y轴添加标签;如图所示

6

设置X轴和Y轴的刻度标签。ax.set_xticks((a,b))表示X轴刻度的位置;ax.set_xticklabels(('$a$','$b$'))表示X轴刻度位置放置的标签内容;ax.set_yticks([func(a),func(b)])表示Y轴刻度的位置;ax.set_yticklabels(('$f(a)$','$f(b)$'))表示Y轴刻度位置放置的标签内容;plt.grid(True)表示给图表添加网格;如图所示

7

使用全部代码运行结果,查看积分图形,如图所示

注意事项
1

add_patch是把对象添加到图形中

2

matplotlib的绘图一般情况下需要代码一起运行,因为大多数函数都只是添加或修改图形等操作

3

zip函数接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表。例如:x = [1, 2, 3] y = [4, 5, 6, 7] xy = zip(x, y),结果是[(1, 4), (2, 5), (3, 6)]

4

Polygon是填充图形面积,需要注意参数的设置

5

text和figtext分别是放置文本标签和坐标轴标签

6

set_xticks,set_xticklabels是表示刻度值的标签添加

7

添加LaTex的标量名称需要用2个$符号包含在内才行

推荐信息