matplotlib 第一天入门
程序员文章站
2022-03-18 17:09:02
...
用 matplotlib 做的一个简单的sin(x)和1/2cos(x)的函数图像
import numpy as np
import matplotlib.pyplot as mp
# #设置窗口颜色等属性
# mp.figure(facecolor='gray')
#将-π到π拆成1000个点
x = np.linspace(-np.pi,np.pi,1000)
y = np.sin(x)
z = np.cos(x)/2
#横轴刻度
x_val_list = [-np.pi,-np.pi/2,0,np.pi/2,np.pi]
#横轴的文本
x_text_list = ['-π',r'$-\frac{\pi}{2}$','0','π/2','π']
#纵轴的刻度
y_val_list = [-1,-0.5,0,0.5,1]
#设置横轴的刻度和显示文本
mp.xticks(x_val_list,x_text_list)
#设置纵轴的刻度
mp.yticks(y_val_list)
#画图的曲线类型,粗细,颜色,透明度
mp.plot(x,y,linestyle=':',linewidth=3,color='orange',label=r'$y=sin(x)$')
mp.plot(x,z,linestyle='--',linewidth=2,color='red',alpha=0.8,label=r'$y=-\frac{1}{2}cos(x)$')
#获取当前坐标轴
ax = mp.gca()
#获取其中某一个坐标轴
ax_left = ax.spines['left']
#将左边坐标轴移动到0点
ax_left.set_position(('data',0))
#将下坐标轴移动到0点
ax.spines['bottom'].set_position(('data',0))
#去掉右边的坐标轴
ax.spines['right'].set_color('none')
#去掉上边的坐标轴
ax.spines['top'].set_color('none')
#绘制特殊点
#设置特殊点的横坐标
xpoints = [np.pi/2,np.pi/2]
#设置特殊点的纵坐标
ypoints = [1,0]
#标记特殊点
mp.scatter(xpoints,ypoints,marker='D',s=60,edgecolor='black',facecolor='limegreen')
#为某点添加备注
mp.annotate(
r'[$\frac{\pi}{2}$,1]',xycoords='data',xy=(np.pi/2,1),
textcoords='offset points',
xytext =(30,10),
fontsize=14,
arrowprops=dict(arrowstyle='->',
connectionstyle='angle3'))
# #设置可视区域
# mp.xlim(0,np.pi)
# mp.ylim(0,1)
#设置图例
mp.legend(loc='upper left')
#设置图标的标题
mp.title(r'sin(x) and $-\frac{1}{2}cos(x)$',fontsize=16)
#设置x轴的描述文本
mp.xlabel('y',fontsize=14)
#设置y轴的描述文本
mp.ylabel('x',fontsize=14)
#设置刻度参数
mp.tick_params(labelsize=8)
#设置网格线
mp.grid(linestyle=':')
mp.show()