使用python matplotlib库绘制不同图标类型

来源:互联网 发布:战龙三国刘备进阶数据 编辑:程序博客网 时间:2024/06/04 22:35

绘制线性图

需要创建两个numpy数组,包含x为横坐标,纵坐标即为函数或者自己定义的数组。
我们以函数y=sin(3x)/x 为例。

x = np.arange(-2*np.pi,2*np.pi,0.01)#定义横轴范围y = np.sin(3*x)/x#函数y2 = np.sin(2*x)/xy3 = np.sin(x)/xplt.plot(x,y)#绘制,matplotlib默认展示不同的颜色plt.plot(x,y2,'--')plt.plot(x,y3)plt.xticks([-2*np.pi,-np.pi,0,np.pi,2*np.pi],[r'$-2\pi$',r'$\pi$','$0$','$\pi$','$2\pi$'])#显示横坐标刻度值,不加第二个参数,将显示的是数值而不是字母plt.yticks([-1,0,1,2,3],[r'$-1$','$0$','$+1$','$+2$','$+3$'])plt.legend(['y','y2','y3'])plt.title('M10')plt.show()

得到图片

将坐标轴移到中间,即笛卡尔坐标轴。路径:将图形上,右边隐藏,将下,左边移动到中间,需要用到gac函数获取Axes对象,接着通过这个对象指定每条边的位置,使用set_color设置成none。实现代码如下:

x = np.arange(-2*np.pi,2*np.pi,0.01)#定义横轴范围y = np.sin(3*x)/x#函数y2 = np.sin(2*x)/xy3 = np.sin(x)/xplt.plot(x,y)#绘制,matplotlib默认展示不同的颜色plt.plot(x,y2,'--')plt.plot(x,y3)plt.xticks([-2*np.pi,-np.pi,0,np.pi,2*np.pi],[r'$-2\pi$',r'$\pi$','$0$','$\pi$','$2\pi$'])#显示横坐标刻度值,不加第二个参数,将显示的是数值而不是字母plt.yticks([-1,0,1,2,3],[r'$-1$','$0$','$+1$','$+2$','$+3$'])plt.legend(['y','y2','y3'])plt.title('M10')ax = plt.gca()#使用gca函数获取axes对象ax.spines['right'].set_color('none')#右侧边隐藏ax.spines['top'].set_color('none')ax.xaxis.set_ticks_position('bottom')#将底边设为横坐标ax.spines['bottom'].set_position(('data',0))#将坐标置于坐标0处ax.yaxis.set_ticks_position('left')#左边设置为纵坐标ax.spines['left'].set_position(('data',0))plt.show()

这里写图片描述

添加注释

x = np.arange(-2*np.pi,2*np.pi,0.01)#定义横轴范围y = np.sin(3*x)/x#函数y2 = np.sin(2*x)/xy3 = np.sin(x)/xplt.plot(x,y)#绘制,matplotlib默认展示不同的颜色plt.plot(x,y2,'--')plt.plot(x,y3)plt.xticks([-2*np.pi,-np.pi,0,np.pi,2*np.pi],[r'$-2\pi$',r'$\pi$','$0$','$\pi$','$2\pi$'])#显示横坐标刻度值,不加第二个参数,将显示的是数值而不是字母plt.yticks([-1,0,1,2,3],[r'$-1$','$0$','$+1$','$+2$','$+3$'])plt.legend(['y','y2','y3'])plt.title('M10')#添加注释,使用annotate函数,第一个参数为:latex表达式,即要现实的字符,xy是注释在图表的数据点位置,xytext表示注释与数据点距离,textcoords='offset points'似乎是必须选?使用arrowprops控制箭头plt.annotate(r'$\lim_{x\to 0}\frac{\sin(x)}{x}=1$',xy=[0,1],xytext=[30,30],fontsize=16,textcoords='offset points',arrowprops=dict(arrowstyle='->',connectionstyle='arc3,rad=.2'))ax = plt.gca()#使用gca函数获取axes对象ax.spines['right'].set_color('none')#右侧边隐藏ax.spines['top'].set_color('none')ax.xaxis.set_ticks_position('bottom')#将底边设为横坐标ax.spines['bottom'].set_position(('data',0))#将坐标置于坐标0处ax.yaxis.set_ticks_position('left')#左边设置为纵坐标ax.spines['left'].set_position(('data',0))plt.show()

这里写图片描述