如何在matplotlib里面显示中文

  • 其实方法有三种,但是结合我的写题的感觉而言,我最后选择了一种适合自己的方法。

其他俩种方法的链接

选择这种方法的原因

  • 首先,我个人比较喜欢一些字体,或者是有些字体可能在不同的场合比较适合使用
  • 其次,这个代码的长度适合记忆
  • 对比:其他俩种的代码,修改字体极其不易(或者是我没有找到正确的简易的修改方式),而这种代码就很容易修改文字字体,直接粘贴磁盘里面的文件路径就可以了,很方便

具体操作

1、找到字体路径

在电脑的左下方搜索框里面搜索字体,找到自己想要的字体,copy它的路径(这个不能粘贴复制,只能手敲)
在这里插入图片描述
在这里插入图片描述

2、写入代码

from matplotlib import font_manager
my_font = font_manager.FontProperties(fname=r'C:\WINDOWS\FONTS\MSYHL.TTC')
  • 直接在PyCharm里面写入这个代码
  • 里面的fname可以根据上文的字体路径方法进行自己修改(我觉得超级方便)

3、代码内部要求

在需要用中文的地方,填入一个参数fontproperties=my_font

例如下面俩个例子

plt.xticks(_x, _x_table,fontproperties=my_font)
plt.xlabel("时间", fontproperties=my_font)
plt.ylabel("温度", fontproperties=my_font)
plt.title("温度变化", fontproperties=my_font)
注意:图例例外

在使用图例的时候,添加:prop=my_font

# 设置图例
plt.legend(loc = "upper left", prop = my_font)

其他时候统一使用上面的fontproperties=my_font格式

完整的例子:

from matplotlib import pyplot as plt
from matplotlib import font_manager
my_font = font_manager.FontProperties(fname=r'C:\WINDOWS\FONTS\MSYHL.TTC')

x_3 = range(1, 31)
x_10 = range(51, 81)
y_3 = [15,18,13,17,28,21,19,18,29,10,11,22,29,14,25,16,27,16,19,20,21,22,13,14,25,16,27,18,29,30]
y_10 = [25,16,27,18,19,20,21,22,13,14,25,16,27,18,29,30,15,18,13,17,18,21,9,18,9,10,11,22,13,14]

# 设置图片大小
plt.figure(figsize=(20, 8), dpi = 80)

# 绘制图片
plt.scatter(x_3, y_3, label = "3月气温" )
plt.scatter(x_10, y_10, label = "10月气温")

#设置x轴的疏密程度与提供信息
_x = list(x_3) + list(x_10)
_x_table = ["3月{}号".format(i) for i in x_3]
_x_table += ["10月{}号".format(i-50) for i in x_10]
plt.xticks(_x[::3], _x_table[::3],fontproperties=my_font, rotation = 45)
# 设置标签
plt.xlabel("时间", fontproperties=my_font)
plt.ylabel("温度", fontproperties=my_font)
plt.title("3月和10月的温度变化散点图", fontproperties=my_font)

# 设置图例
plt.legend(loc = "upper left", prop = my_font)
# 保存图片
plt.savefig('./散点图.png')
# 绘制图片
plt.show()

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bessie_Lee_gogogo

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值