Python学习笔记(matplotlib实战篇)--函数积分图
Python学习笔记–函数积分图
参靠视频:《Python数据可视化分析 matplotlib教程》链接:https://www.bilibili.com/video/av6989413/?p=6
所用的库及环境:
IDE:Pycharm
Python环境:python3.7
Matplotlib: Matplotlib 1.11
Numpy: Numpy1.15
函数积分图
- 代码及效果图
1 import matplotlib.pyplot as plt 2 import numpy as np 3 from matplotlib.patches import Polygon 4 5 def func(x): 6 return -(x-2)*(x-8)+40 7 8 x = np.linspace(0,10) 9 y = func(x) 10 11 fig,axes = plt.subplots() 12 #绘制曲线 13 plt.plot(x,y,\'r\',linewidth = 2) 14 a=2 15 b=9 16 17 #坐标轴设置 18 axes.set_xticks([a,b]) 19 axes.set_xticklabels([\'$a$\',\'$b$\']) 20 axes.set_yticks([]) 21 plt.figtext(0.9,0.05,\'$x$\') 22 plt.figtext(0.1,0.9,\'$y$\') 23 24 #绘制灰色多边形 25 ix=np.linspace(a,b) 26 iy=func(ix) 27 ixy = zip(ix,iy) 28 verts=[(a,0)]+list(ixy)+[(b,0)] 29 poly = Polygon(verts,facecolor=\'0.9\',edgecolor=\'0.5\') 30 axes.add_patch(poly) 31 32 #添加数学公式 33 x_math =(a+b)*0.5*0.8 34 y_math = 35 35 plt.text(x_math,y_math,\'$\int_a^b(-(x-2)*(x-8)+40)dx$\',fontsize=10,horizontalalignment=\'center\') 36 plt.show()
- 相关函数介绍
- linspace:在指定的间隔内返回均匀间隔的数字
- 属性
- start:序列的起始值
- stop :序列的结束值
- 其他属性详见文档:https://docs.scipy.org/doc/numpy/reference/generated/numpy.linspace.html?highlight=linspace#numpy.linspace
- 属性
- set_xticks:使用刻度列表设置x刻度
- set_xticklabels:使用字符串标签列表设置x-tick标签。
- set_yticks:使用刻度列表设置y刻度
- 属性
- ticks:y轴刻度列表
- 更多属性参加文档:https://matplotlib.org/api/_as_gen/matplotlib.axes.Axes.set_yticks.html?highlight=set_ytick
- 属性
- figtext:添加文字到图
- 属性
- x,y:两个float值,放置文本的位置。默认情况下,这是图形坐标,浮动在[0,1]中。最右是1最左是0
- 更多属性详见文档:https://matplotlib.org/api/_as_gen/matplotlib.pyplot.figtext.html?highlight=figtext#matplotlib.pyplot.figtext
- 属性
- zip:把两个数组打包为一个元组
- 属性
- iterabl :一个或多个迭代器
- 详见资料:http://www.runoob.com/python/python-func-zip.html
- 属性
- text:请参照往期笔记https://www.cnblogs.com/linblogs/p/9670488.html
- 属性
- horizontalalignment:文本显示位置,center是居中显示
- 属性
- Polygon:绘制一般的多边形
- 属性
- xy:多边形的点
- facecolor:填充的阴影深度
- edgecolor:填充的边界深度
- 属性
- 其他函数请参考往期学习笔记,或参考matplotlib文档https://matplotlib.org/index.html
- linspace:在指定的间隔内返回均匀间隔的数字
三.结语:
感谢matplotlib,numply提供的文档,感谢麦子学院提供的视频教学