- 其实方法有三种,但是结合我的写题的感觉而言,我最后选择了一种适合自己的方法。
选择这种方法的原因
- 首先,我个人比较喜欢一些字体,或者是有些字体可能在不同的场合比较适合使用
- 其次,这个代码的长度适合记忆
- 对比:其他俩种的代码,修改字体极其不易(或者是我没有找到正确的简易的修改方式),而这种代码就很容易修改文字字体,直接粘贴磁盘里面的文件路径就可以了,很方便
具体操作
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()