「matplotlib」多个坐标轴,绘制多个图像

82 阅读1分钟

多个坐标轴多个图像

  • 准备数据

  • 创建画布 fig, axes

  • 绘制图像

  • 修饰图像

  • 展示图像

多个坐标多个图像.png

import matplotlib.pyplot as plt
import matplotlib
import random
from pylab import mpl

# 设置显示中文字体
mpl.rcParams["font.sans-serif"] = ["SimSun"]  # 宋体 = SimSun
# 设置正常显示符号
mpl.rcParams["axes.unicode_minus"] = False

matplotlib.use('Qt5Agg')

# 1.准备数据
x = range(60)
y_shanghai = [random.uniform(15, 18) for i in x]
y_beijing = [random.uniform(1, 5) for i in x]

# 2、创建画布
"""
nrows、ncols 表示坐标图像行列数
下面表示的是1行2列的两个坐标轴图像

axes[i]表示索引的对应的图像
"""
fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(20, 6), dpi=100)

# 3、绘制图像,访问规则先行后列,axes是一维,存的子图信息
axes[0].plot(x, y_shanghai, label="上海")
axes[0].set_title("shanghai")
axes[1].plot(x, y_beijing, label="北京", color="r", linestyle="--")
axes[1].set_title("beijing")

# 4、设置刻度,set_xxx格式
# 构造x,y轴刻度标签
x_ticks_label = ["11点{}分".format(i) for i in x]
y_ticks = range(40)
axes[0].set_xticks(x[::5])
axes[0].set_yticks(y_ticks[::5])
axes[0].set_xticklabels(x_ticks_label[::5], fontsize=8)
axes[1].set_xticks(x[::5])
axes[1].set_yticks(y_ticks[::5])
axes[1].set_xticklabels(x_ticks_label[::5])

# 5、添加网格显示
axes[0].grid()
axes[1].grid()

# 6、添加描述信息,set_xxx格式
axes[0].set_xlabel("时间", fontsize=20)
axes[0].set_ylabel("温度", fontsize=20)
axes[0].set_title("中午11点--12点某城市温度变化图", fontsize=20)
axes[1].set_xlabel("时间", fontsize=20)
axes[1].set_ylabel("温度", fontsize=20)
axes[1].set_title("中午11点--12点某城市温度变化图", fontsize=20)

# 7、显示图例
axes[0].legend()
axes[1].legend()

# 8、保存图像
plt.savefig("test.png", dpi=100)

# 显示所有图像
plt.show()

更多绘图请关注该专栏内容