matplotlib之折线图

 

一个坐标多张图(上-下)

 

# 需求:模拟一小时内(60分钟)北京和上海的温度变化数据

import matplotlib.pyplot as plt     # 导入绘图库
import random                       # 导入随机数包
from pylab import mpl 

# 设置显示中文字体
mpl.rcParams["font.sans-serif"] = ["SimHei"]

# 数据准备
x = range(60)                                        # X轴时间范围:0-59分钟(共60个点)
y_shanghai = [random.uniform(10, 18) for i in x]     # 生成上海温度模拟数据(15-18℃之间)
y_beijing  = [random.uniform(1, 10) for i in x]     # 生成上海温度模拟数据(1-10℃之间)

# 创建画布
# figsize控制图表物理尺寸,dpi影响输出图像的清晰度(适合打印场景)
plt.figure(figsize=(20, 10), dpi=100)                # 创建20英寸宽、10英寸高的画布,分辨率100像素/英寸

# 画折线图
plt.plot(x, y_shanghai)                              # 绘制折线图,默认蓝色实线[2,4]
plt.plot(x, y_beijing, color='r', linestyle='--') 

# 添加x和y轴刻度
x_ticks_label = ["11点{}分".format(i) for i in x]    # 生成中文时间标签
y_ticks = range(20)                                  # Y轴范围0-20℃

plt.xticks(x[::5], x_ticks_label[::5])               # 设置X轴刻度(步长5)
plt.yticks(y_ticks[::5])                             # 设置Y轴刻度(步长5)

# 网格虚线
plt.grid(True, linestyle="--", alpha=1)              # alpha透明度

# 添加标题
plt.title("中午11点到12点之间的温度编号图示", fontsize=20)
plt.xlabel("时间", fontsize=10)
plt.ylabel("温度", fontsize=10)

# 保存图片
plt.savefig("./test.png")

# 显示图像
plt.show()

两个坐标两张图(左-右)

# plt.plot()  面向过程画图
# axes.set_() 面向对象画图

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

# 设置显示中文字体
mpl.rcParams["font.sans-serif"] = ["SimHei"]

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

# 创建画布
fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(20,8), dpi=100)

# 画折线图
axes[0].plot(x, y_shanghai, label='上海')
axes[1].plot(x, y_beijing, color='r', linestyle='--', label='北京')

# 添加x和y轴刻度
x_ticks_label = ["11点{}分".format(i) for i in x]    
y_ticks = range(20)                                 

axes[0].set_xticks(x[::5])              
axes[0].set_yticks(y_ticks[::5])      
axes[1].set_xticks(x[::5])              
axes[1].set_yticks(y_ticks[::5]) 

# 网格虚线
axes[0].grid(True, linestyle="--", alpha=1)     
axes[1].grid(True, linestyle="--", alpha=1)  

# 添加标题
axes[0].set_xlabel("中午11点到12点之间的温度编号图示", fontsize=10)
axes[0].set_ylabel("温度", fontsize=10)
axes[0].set_title("中午11点到12点之间的温度编号图示", fontsize=20)

axes[1].set_xlabel("中午11点到12点之间的温度编号图示", fontsize=10)
axes[1].set_ylabel("温度", fontsize=10)
axes[1].set_title("中午11点到12点之间的温度编号图示", fontsize=20)

# 保存图片
plt.savefig("./test2.png")

# 添加图例
axes[0].legend(loc=0)
axes[1].legend(loc=0)

# 显示图像
plt.show()

 

posted @ 2025-03-26 17:45  Peter.Jones  阅读(51)  评论(0)    收藏  举报