模拟上海气温变化折线图
实现步骤
- 准备数据
- 创建画布
- 绘制图像
- 显示图像
基本实现
示例代码:
import matplotlib.pyplot as plt
import random# 准备数据
x = range(60)
y_shanghai = [random.uniform(15,18) for _ in x]# 创建画布
plt.figure(figure=(20,8), dpi=100)# 绘制图像
plt.plot(x, y_shanghai)# 显示图像
plt.show()
渲染效果:
中文字体和刻度
通过以下代码,实现显示中文字体:
from pylab import mplmpl.rcParams["font.sans-serif"] = ["SimHei"]
mpl.rcParams["axes.unicode_minus"] = False
通过以下代码,实现添加刻度:
x_ticks_label = [f"11点{i:02d}分" for i in x]
y_ticks = range(40)
plt.xticks(x[::10], x_ticks_label[::10])
plt.yticks(y_ticks[::5])
完整示例代码:
from pylab import mpl
import matplotlib.pyplot as plt
import random# 设置中文字体
mpl.rcParams["font.sans-serif"] = ["SimHei"]
mpl.rcParams["axes.unicode_minus"] = False# 准备数据
x = range(60)
y_shanghai = [random.uniform(15,18) for _ in x]# 创建画布
plt.figure(figure=(20,8), dpi=100)# 绘制图像
plt.plot(x, y_shanghai)# 添加刻度
x_ticks_label = [f"11点{i:02d}分" for i in x]
y_ticks = range(40)
plt.xticks(x[::10], x_ticks_label[::10])
plt.yticks(y_ticks[::5])# 显示图像
plt.show()
渲染效果:
添加网格
通过以下代码,实现添加网格:
plt.grid(True, linestyle="--", alpha=0.5)
完整示例代码:
from pylab import mpl
import matplotlib.pyplot as plt
import random# 设置中文字体
mpl.rcParams["font.sans-serif"] = ["SimHei"]
mpl.rcParams["axes.unicode_minus"] = False# 准备数据
x = range(60)
y_shanghai = [random.uniform(15,18) for _ in x]# 创建画布
plt.figure(figure=(20,8), dpi=100)# 绘制图像
plt.plot(x, y_shanghai)# 添加刻度
x_ticks_label = [f"11点{i:02d}分" for i in x]
y_ticks = range(40)
plt.xticks(x[::10], x_ticks_label[::10])
plt.yticks(y_ticks[::5])# 添加网格
plt.grid(True, linestyle="--", alpha=0.5)# 显示图像
plt.show()
渲染效果:
添加描述信息
通过以下代码,实现添加描述信息:
plt.xlabel("时间")
plt.ylabel("刻度")
plt.title("中午11点-12点某城市温度变化图")
完整示例代码:
from pylab import mpl
import matplotlib.pyplot as plt
import random# 设置中文字体
mpl.rcParams["font.sans-serif"] = ["SimHei"]
mpl.rcParams["axes.unicode_minus"] = False# 准备数据
x = range(60)
y_shanghai = [random.uniform(15,18) for _ in x]# 创建画布
plt.figure(figure=(20,8), dpi=100)# 绘制图像
plt.plot(x, y_shanghai)# 添加刻度
x_ticks_label = [f"11点{i:02d}分" for i in x]
y_ticks = range(40)
plt.xticks(x[::10], x_ticks_label[::10])
plt.yticks(y_ticks[::5])# 添加网格
plt.grid(True, linestyle="--", alpha=0.5)# 添加描述信息
plt.xlabel("时间")
plt.ylabel("刻度")
plt.title("中午11点-12点某城市温度变化图")# 显示图像
plt.show()
渲染效果:
图像保存
通过以下代码,实现保存图像:
plt.savefig("./test.png")
完整示例代码:
from pylab import mpl
import matplotlib.pyplot as plt
import random# 设置中文字体
mpl.rcParams["font.sans-serif"] = ["SimHei"]
mpl.rcParams["axes.unicode_minus"] = False# 准备数据
x = range(60)
y_shanghai = [random.uniform(15,18) for _ in x]# 创建画布
plt.figure(figure=(20,8), dpi=100)# 绘制图像
plt.plot(x, y_shanghai)# 添加刻度
x_ticks_label = [f"11点{i:02d}分" for i in x]
y_ticks = range(40)
plt.xticks(x[::10], x_ticks_label[::10])
plt.yticks(y_ticks[::5])# 添加网格
plt.grid(True, linestyle="--", alpha=0.5)# 添加描述信息
plt.xlabel("时间")
plt.ylabel("刻度")
plt.title("中午11点-12点某城市温度变化图")# 保存图像
plt.savefig("./test.png")# 显示图像
plt.show()