欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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()