Matplotlib设置图形信息以及windows下配置中文显示

假设我们早上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键盘
    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()

添加字体完成后,执行代码,效果如图所示:
在这里插入图片描述

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值