Matplotlib中文乱码解决方案(1):`matplotlib.font_manager` 自定义字体[本方案最佳]

之前总是遇到Matplotlib中文乱码问题[总是显示为方块]


我尝试了手动修改Matplotlib配置文件,有时在ubuntu18.04下OK,有时又在win10报错,鲁棒性太差…用户体验极差!


我也尝试了重载配置文件,就是修改matplotlib.rcParams部分,是的,也是时好时坏,这两个都和你的系统字体有关系,好几次,明明设置是对的,结果非得重启一下才能正常显示,很玄学!


算了,直接用使用自定义字体方案吧 [本方案最佳] 即走即用,不用和开发环境作斗争…



煮个例子吧:

import numpy as np
import pylab as pl
import matplotlib.font_manager as fm
 
myfont = fm.FontProperties(fname=r'D:\Fonts\simkai.ttf') # 设置字体
t = np.arange(0.0,2.0 * np.pi,0.01) # 自变量取值范围
s = np.sin(t) # 计算正弦函数值
z = np.cos(t) # 计算余弦函数值
pl.plot(t,s,label='正弦')
pl.plot(t,z,label='余弦')
pl.xlabel('x-变量',fontproperties=myfont,fontsize=24) #设置标签
pl.ylabel('y-正弦余弦函数值',fontproperties=myfont,fontsize=24)
pl.title('sin-cos函数图像',fontproperties=myfont,fontsize=32) #图像标题
pl.legend(prop=myfont)
pl.show()

在这里插入图片描述
我用的是【瘦金体】放在图上好像有些喜感,嘿嘿


总结一下
先调用matplotlib.font_manager.FontProperties指定字体文件,返回对象myfont
之后在使用字体的时候,传入参数fontproperties=myfont即可

原创文章 66 获赞 14 访问量 9065

猜你喜欢

转载自blog.csdn.net/HaoZiHuang/article/details/105811300
今日推荐