matplotlib 个人使用笔记
程序员文章站
2022-03-19 22:14:40
...
前言
整理记录,避免重复工作
正文
首先是最简单的方式
import matplotlib.pyplot as plt
plt.figure()
# plt.yticks(fontsize=5)
plt.plot(x, y)
plt.xlabel('x')
plt.ylabel('y')
plt.savefig("1.png")
plt.show()
然后是坐标轴使用中文标签
import matplotlib.pyplot as plt
from matplotlib.pylab import style
style.use('ggplot')
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.figure()
plt.plot(x_axis, ada_scores, "x-", label="Adaboost")
plt.plot(x_axis, rf_scores, "+-", label="Random Forest")
plt.legend()
plt.xlabel('基分类器数目')
plt.ylabel('AUC指标')
plt.show()
axis 指的是一个坐标轴。axes 代表的其实是 figure 当中的一个坐标系。三维的图,axes 就代表 3 个坐标轴了。所以,在一个 figure 当中,每添加一次 subplot ,其实就是添加了一个坐标系,也就是添加了一个 axes。所以当你只画一个图的时候,plt.xxx
与 ax.xxx
其实都是作用在相同的图上的。
画多个图
fig=plt.figure(num=1,figsize=(4,4))
ax1=fig.add_subplot(221)###可从图中看到,我们的画布是分为2x2的区域
ax1.plot([1,2,3,4],[1,2,3,4])
ax2=fig.add_subplot(222)
ax2.plot([1,2,3,4],[2,2,3,4])
ax3=fig.add_subplot(223)
ax3.plot([1,2,3,4],[1,2,2,4])
ax4=fig.add_subplot(224)
ax4.plot([1,2,3,4],[1,2,3,3])
plt.show()
坐标的设置
#设置刻度范围
ax.set_xlim(1,7.1) # x轴从1到7.1
ax.set_ylim(40,100) # y轴从40到100
#设置显示的刻度
ax.set_xticks(np.linspace(1,7,7)) # np.linspace()函数为等差数列,1至7的7个数组成的等差数列1,2,3,4,5,6,7,
ax.set_yticks(np.linspace(50,100,6)) # 关于等差数列,想了解的可以参看numpy的用法
#设置刻度标签
ax.set_xticklebels(["星期一","星期二","星期三","星期四","星期五","星期六","星期日"],
fontproperties="SimHei",fontsize=12)
#这里用到了属性fontproperties可以单独设置x轴标签的字体,也可以用fontsize设置字体大小,还可以用color
设置字的颜色
ax.set_yticklebels(["50kg","60kg","70kg","80kg","90kg","100kg"],fontsize=12)
误差阴影图plt.fill_between(xfit, yfit - dyfit, yfit + dyfit, color='gray', alpha=0.2)
alpha是透明度