Matplotlib自学笔记
1.安装Matpoltlib
第一步:确保自己的电脑已经安装了Python环境。检查方法是win+R,输入cmd打开命令行,输入python,查看自己的Python版本:
第二步:使用python -m pip install --upgrade pip
升级自己的pip,避免安装时出现报错
第三步:输入pip install Matplotlib
即可安装啦
第四步:检查自己能否正常使用Matplotlib:命令行进入Python环境,并输入import matplotlib as plt
,如果没有报错提示即为安装成功。
2.简简单单建立一个坐标系
坐标系由X轴和Y轴构成,因此简单定义一下x,y轴的刻度即可
import matplotlib.pyplot as plt
import numpy as np
#定义X轴和Y轴
x = np.array([1,2,3])
y = np.array([1,2,3])
plt.plot(x,y)
plt.show()
结果如下图所示
PS:不想要这条线的话可以把x,y改为x = np.linspace(1,3,1) y = np.linspace(1,3,1)
,就可以类似初始化一个窗口,具体什么含义我也没搞懂
3.绘制折线面积图
使用fill_between()方法
import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
# 设置横纵坐标的名称以及对应字体格式
font1= {'family' : 'Times New Roman',
'weight' : 'bold',
'size' : 17}
font2= {'family' : 'Times New Roman',
'weight' : 'bold',
'size' : 12}
plt.xlabel("k", font1)
plt.ylabel("Location Entropy", font1)
plt.figure
x=np.arange(5,35,5)
#绘制面积图,色块呈现出里外叠加态
#在同一图片上画三条折线,并填充颜色,增加不同的透明度
y1 = [2.056648, 3.087999, 3.746861, 4.072944, 4.454331, 4.690986]
plt.fill_between(x,y1,color="#7b68ee",label='FIFO',alpha=1)
y2 = [0.1953145, 2.9121546, 3.321574, 3.843154, 4.04876416, 4.315754]
plt.fill_between(x,y2,color="#ff6347",label='PAPT',alpha=1)
y3 = [0.164676, 2.795135, 3.02457456, 3.51676, 3.494879, 4.000674]
plt.fill_between(x,y3,color="#40e0d0",label='LEPPV',alpha=1)
plt.legend(loc='upper left',prop=font2)
plt.show()
结果如图所示:
这里的代码是将三个折线图层叠在一起了。只需要一条折线的话,注释掉另外两个即可。
4.绘制折线叠加图
使用stackplot()方法
import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
# 设置横纵坐标的名称以及对应字体格式
font1= {'family' : 'Times New Roman',
'weight' : 'normal',
'size' : 17}
font2= {'family' : 'Times New Roman',
'weight' : 'normal',
'size' : 12}
plt.xlabel("X", font1)
plt.ylabel("Y", font1)
plt.figure
x=np.arange(5,35,5)
y1 = [2.056648, 3.087999, 3.746861, 4.072944, 4.454331, 4.690986]
y2 = [0.1953145, 2.9121546, 3.321574, 3.843154, 4.04876416, 4.315754]
y3 = [0.164676, 2.795135, 3.02457456, 3.51676, 3.494879, 4.000674]
#绘制叠加图,色块呈现出上下叠加态
colors = ['#40e0d0','#ff6347','#7b68ee']
labels = ['A','B','C']
plt.stackplot(x,y1,y2,y3,labels=labels,colors=colors)
plt.legend(loc='upper left',prop=font2)
plt.show()
效果如图所示:
跟面积图的区别是:因变量Y是三个自变量Xi对应的Yi之和。