假设我们早上10点到12点之间的气温在20-35℃之间变化,我们利用matplotlib绘制早上10~12点的每分钟的气温变化折线图
- 绘制折线图
# coding=utf-8
from matplotlib import pyplot as plt
import random
from matplotlib import font_manager
x = range(120) # 10~12点,共计120分钟
y = [random.randint(20, 35) for _ in range(120)] # 随机从20~35之间取温度值
# 设置图片大小
plt.figure(figsize=(16, 7), dpi=80)
_x = x[::3] # 设置x轴的坐标刻度,每三分钟为一个坐标刻度
_xticks_labels = ["10点{}分".format(i) for i in range(0, 60, 3)] # 设置10点的时间标签显示
_xticks_labels += ["11点{}分".format(i - 60) for i in range(60, 120, 3) #设置11点的时间标签显示
plt.xticks(ticks=_x, labels=_xticks_labels, rotation=45) # 设置rotation把x轴的标签旋转45°
plt.xlabel('时间') # 设置x轴的标签代表的数值含义是时间
plt.ylabel('温度(℃)') # 设置y轴代表的标签的数值含义是温度
plt.title('某天10~12温度变化折线图') # 设置图标的标题为“xxxxxx”
plt.plot(x, y)
plt.show()
我们执行程序,查看绘制的图表
从上图我们发现,需要中文显示的标题、x/y轴标签、时间的中文都变成了乱码,这是因为matplotlib默认是不支持中文显示的,下面我们通过修改添加字体来支持中文显示
-
查找字体路径
1.按住win+r键盘
2.输入control,点击确定
3.点击“小图标”,展开的设置中选择“字体”
4.下拉条拖到最后,双击选择“微软雅黑”字体
5.选择任意字体右击复制
6.将字体复制到和你写的温度折线图代码一个路径 -
加入中文支持
加入中文支持,我们需要导入模块font_manager,然后通过font_manager的FontProperties方法,手动添加字体,具体完整代码如下:
# coding=utf-8
from matplotlib import pyplot as plt
import random
from matplotlib import font_manager
x = range(120) # 10~12点,共计120分钟
y = [random.randint(20, 35) for _ in range(120)] # 随机从20~35之间取温度值
# 设置图片大小
plt.figure(figsize=(16, 7), dpi=80)
_x = x[::3] # 设置x轴的坐标刻度,每三分钟为一个坐标刻度
_xticks_labels = ["10点{}分".format(i) for i in range(0, 60, 3)] # 设置10点的时间标签显示
_xticks_labels += ["11点{}分".format(i - 60) for i in range(60, 120, 3)] # 设置11点的时间标签显示
my_font = font_manager.FontProperties(fname='msyhbd.ttc') # 拷贝过来的字体文件
plt.xticks(ticks=_x, labels=_xticks_labels, rotation=45, fontproperties=my_font) # 设置rotation把x轴的标签旋转45°
plt.xlabel('时间') # 设置x轴的标签代表的数值含义是时间
plt.ylabel('温度(℃)') # 设置y轴代表的标签的数值含义是温度
plt.title('某天10~12温度变化折线图') # 设置图标的标题为“xxxxxx”
plt.plot(x, y)
plt.show()
添加字体完成后,执行代码,效果如图所示: