工作中经常需要使用matplotlib库绘制曲线图,在此记录,以备后用。
将一条或多条曲线绘制在一张图上。下面代码以绘制两条曲线为例。
import matplotlib.pyplot as plt
# 显示设置
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False # 负号显示
plt.rcParams['font.family'] = 'Times New Roman' # 字体
plt.rcParams['font.style'] = 'normal' # 正体normal, 斜体italic
plt.rcParams['font.size'] = 14 # 字号
fig, ax = plt.subplots(figsize=(8, 6))
ax.plot(x1, y, label="label1", color='r',linewidth=1.5)
ax.plot(x2, y, label="label2", color='g',linewidth=1.5)
ax.set_xticks([i for i in range(-70, 110, 10)]) # x轴坐标范围
ax.set_yticks([i for i in range(0, 12)]) # y轴坐标范围
ax.set_xlabel("x_value") # x轴标签
ax.set_ylabel("y_value") # y轴标签
ax.set_title("title") # 标题
plt.grid(b=True, linestyle="--", alpha=0.5) # 显示栅格
plt.legend() # 显示图例
plt.savefig(save_path, bbox_inches='tight', pad_inches=0.2) # 保存
plt.close()
绘制三个子图,并共享y轴。
plt.figure(figsize=(8, 6))
fig, ax = plt.subplots(1, 3, sharey='all')
for i in [2, 1, 0]:
ax[i].plot(x[i], y[i], label[i], marker="+", color='r', linewidth=1)
ax[i].set_xticks([i for i in range(0, 110, 20)]) # x轴坐标范围
ax[i].set_yticks([i for i in range(0, 12)]) # y轴坐标范围
ax[i].set_xlabel("x_value") # x轴标签
ax[i].grid(b=True, linestyle="--", alpha=0.5) # 显示栅格
ax[i].legend() # 显示图例
ax[0].set_ylabel("y_value") # y轴标签
plt.suptitle("title") # 标题
fig.set_size_inches(14, 7)
plt.savefig(save_path, bbox_inches='tight', pad_inches=0.2) # 保存
plt.clf()
plt.cla()
plt.close("all")