使用matplotlib绘图(一)

本节以函数 y = x 2 y=x^2 y=x2以及 y = s i n ( x ) y=sin(x) y=sin(x)为例,较为全面的讲解如何用matplotlib绘制函数图像

1. y = x 2 y=x^2 y=x2

导入库:

import matplotlib.pyplot as plt
import numpy as np

写标题:

plt.title(r'$y = x^2$')#绘图时所有公式为Latex格式

绘制x、y轴:

#显示中文:
plt.rcParams['font.sans-serif'] = [u'SimHei']
plt.rcParams['axes.unicode_minus'] = False

plt.xlabel('x轴名称')#x轴名称
plt.ylabel('y轴名称')
plt.xlim(xmin=-10,xmax=10)#x轴范围
plt.ylim(ymin=-1,ymax=100)
plt.locator_params('x',nbins=10)#x轴刻度数
plt.locator_params('y',nbins=10)

写出x,y关系式,作图:

x = np.arange(-10,10,0.01)
y = x**2

plt.plot(x,y,c='blue',ls='--')

plot函数中c为线条颜色,可选颜色见下图:
在这里插入图片描述
ls为线段类型,可选类型见下图:
在这里插入图片描述
若需某处添加文字:

plt.text(2,50,'此处添加文字')

前两个参数为文字位置坐标,最后一个参数为文字内容
最终,显示网格,将图像可视化:

plt.grid()
plt.show()

完整代码如下:

import matplotlib.pyplot as plt
import numpy as np

plt.rcParams['font.sans-serif'] = [u'SimHei']
plt.rcParams['axes.unicode_minus'] = False

plt.title(r'$y = x^2$')#绘图时所有公式为Latex格式

plt.xlabel('x轴名称')#x轴名称
plt.ylabel('y轴名称')
plt.xlim(xmin=-10,xmax=10)#x轴范围
plt.ylim(ymin=0,ymax=100)
plt.locator_params('x',nbins=10)#x轴刻度数
plt.locator_params('y',nbins=10)

x = np.arange(-10,10,0.01)
y = x**2

plt.plot(x,y,c='blue',ls='--')

plt.text(2,50,'此处添加文字')

plt.grid()
plt.show()

图像如下:
在这里插入图片描述

2. y = s i n ( x ) y=sin(x) y=sin(x)

在作 y = x 2 y = x^2 y=x2图像的讲解中,我们学习了一些基本操作,本节中主要是学习添加注释以及坐标轴的其他操作。
代码如下:

from matplotlib import pyplot as plt
import numpy as np

fig=plt.figure(figsize=(8,4))#生成画布
ax=fig.add_subplot(111)#取子图

x=np.arange(-2*np.pi,2*np.pi,0.01)#设定x
y=np.sin(x)#y=sin(x)
ax.plot(x,y,color='red',label='y=sin(x)')#红色曲线,图例
ax.legend(loc='upper left')#图例位置

#移动坐标轴,使原点位于中心:
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.spines['left'].set_position(('data',0))
ax.yaxis.set_ticks_position('left')
ax.spines['bottom'].set_position(('data',0))
ax.xaxis.set_ticks_position('bottom')
#设置x轴单位,标注:
ax.set_xticks([-2*np.pi,-3*np.pi/2,-np.pi,
			  -np.pi/2,0,np.pi/2,np.pi,3*np.pi/2,2*np.pi])
ax.set_xticklabels([r'$-2\pi$',r'$-\frac{3\pi}{2}$',r'$-\pi$',
						r'$\frac{\pi}{2}$','0',r'$\frac{\pi}{2}$',r'$\pi$',
						r'$\frac{3\pi}{2}$',r'$2\pi$'])
#特殊点标注:
t = 2*np.pi/3
ax.scatter([t],[np.sin(t)],color='blue')
ax.plot([t,t],[0,np.sin(t)],linestyle='--')
ax.annotate("($2\pi/3$,$\sqrt{3}/2$)",
				xy=(t,np.sin(t)),
				xycoords='data',
				xytext=(+10,+30),
				textcoords='offset points',
				fontsize=16,
				arrowprops=dict(arrowstyle='->'))

plt.title('y=sin(x) graph')#标题
plt.grid()#显示网格
plt.show()#可视化

各个操作可以参考注释,图像如下:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值