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

绘制线性图

需要创建两个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)/x
y3 = np.sin(x)/x
plt.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)/x
y3 = np.sin(x)/x
plt.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)/x
y3 = np.sin(x)/x
plt.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()

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值