Myluzh Blog

Strive to become a dream architect.

Python matplotlib 绘制折线图(多坐标系)

发布时间: 2023-7-13 文章作者: myluzh 分类名称: Python


0x01 图像
点击查看原图
0x02 代码
import matplotlib.pyplot as plt
import random
# 支持中文
from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['Arial Unicode MS']
mpl.rcParams['axes.unicode_minus'] = False  # 用来解决不能使用汉字问题,需要导入matplotlib
# 准备x y 数据
x = range(1, 31)
y_hangzhou = [random.uniform(35, 42) for i in x]
y_beijing = [random.uniform(34, 39) for i in x]
# nrows/ncols设置成有几行几列的坐标系。返回fig:图对象,axes:返回相应数量的坐标系
fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(20, 8), dpi=50)
axes[0].plot(x, y_hangzhou, color="b", linestyle='-', label='上海')
axes[1].plot(x, y_beijing, color="r", linestyle='--', label='北京')
# 刻度显示 自定义x y 刻度
# 构造xy刻度标签
x_ticks = ([f"6月{i}日" for i in x])
y_ticks = range(45)
axes[0].set_title('上海30天气温', fontsize=20)
axes[0].set_xlabel("时间")
axes[0].set_ylabel("温度")
axes[0].set_xticks(x[::4], x_ticks[::4])
axes[0].set_yticks(y_ticks[30::2])
axes[1].set_title('北京30天气温', fontsize=20)
axes[1].set_xlabel("时间")
axes[1].set_ylabel("温度")
axes[1].set_xticks(x[::4], x_ticks[::4])
axes[1].set_yticks(y_ticks[30::2])
# 添加网格显示
axes[0].grid(True, alpha=0.5, linestyle="--")
axes[1].grid(True, alpha=0.5, linestyle="-")
# 添加图例
axes[0].legend(loc=0)
axes[1].legend(loc=0)
# 显示
plt.show()

标签: python matplotlib

发表评论