matplotlib使用
20221123
import matplotlib.pyplot as plt
basic idea is that:
x = np.arrange(0, 10, 0.1)
y = np.sin(x)
plt.plot(x, y)
plt.show()
We can also change the plot as other images, such as plt.bar()
, plt.pie()
, plt.scatter
.
使用更多的变量来让图片更丰富
给图片变颜色,给线换形状
color:线条颜色,值r表示红色(red)
marker:点的形状,值o表示点为圆圈标记(circle marker)
linestyle:线条的形状,值dashed表示用虚线连接各点
plt.plot(x, y, color='r',marker='o',linestyle='dashed')
#plt.plot(x, y, 'ro')
标定坐标轴范围
axis:坐标轴范围
语法为axis[xmin, xmax, ymin, ymax],
也就是axis[x轴最小值, x轴最大值, y轴最小值, y轴最大值]
plt.axis([0, 6, 0, 20])
给图片加注释
#添加文本 #x轴文本
plt.xlabel('x坐标轴')
#y轴文本
plt.ylabel('y坐标轴')
#标题
plt.title('标题')
#添加注释 参数名xy:箭头注释中箭头所在位置,参数名xytext:注释文本所在位置,
#arrowprops在xy和xytext之间绘制箭头, shrink表示注释点与注释文本之间的图标距离
plt.annotate('我是注释', xy=(2,5), xytext=(2, 10),
arrowprops=dict(facecolor='black', shrink=0.01),
)
创建多个图
subplot()方法里面传入的三个数字 前两个数字代表要生成几行几列的子图矩阵,第三个数字代表选中的子图位置 2行1列的图 (2,1,选择1或者2画纸) subplot(2,1,1)生成一个2行1列的子图矩阵,当前是第一个子图
#创建画板1
fig = plt.figure(1) #如果不传入参数默认画板1
#第2步创建画纸,并选择画纸1
ax1=plt.subplot(2,1,1)
#在画纸1上绘图
plt.plot([1, 2, 3])
#选择画纸2
ax2=plt.subplot(2,1,2)
#在画纸2上绘图
plt.plot([4, 5, 6])
#显示图像
plt.show()
绘制多个线在一张图上
#多图绘制
#导入包numpy
import numpy as np
#定义一维数组
t = np.arange(0, 5, 0.2)
#使用数组同时绘制多个线性
#线条1
x1=y1=t
#线条2
x2=x1
y2=t**2
#线条3
x3=x1
y3=t**3
#使用plot绘制线条
linesList=plt.plot(x1, y1,
x2, y2,
x3, y3 )
#用setp方法可以同时设置多个线条的属性
plt.setp(linesList, color='r')
plt.show()
print('返回的数据类型',type(linesList))
print('数据大小:',len(linesList))
参考:
[1] https://blog.csdn.net/robert_chen1988/article/details/100023613
[2] https://www.runoob.com/matplotlib/matplotlib-pie.html
[3] https://zhuanlan.zhihu.com/p/109245779
[4] https://usermanual.wiki/Document/matplotlibuserguide.1208853086.pdf