matplotlib显示任意中文字体(不限SimHei)
1.背景(废话)
网上搜索”matplotlib显示中文字体“,估计会出现很多解决方案,作为小白而且想尽快解决问题的我,发现很多教程其实不太满足我的需求(我只想快速解决这个事情,但是似乎缺乏傻瓜式的“一复制一粘贴就ok”的解决方案模式),因此,这个教程整合了一些网上的信息,希望可以对即将被这个问题苦恼的小伙伴有所帮助。
2.实验环境
- ubuntu16.04
- python3.7
- anaconda3
- (2020.4.15 update:最新在window下验证也可行)
3.步骤
3.1 获取字体文件
如果你有windows系统(没有的话,建议你去找一台, 我用的是win10),C:\Windows\Fonts下有很多字体文件,可以在搜索框里搜索(如“宋体”),选择ttf/TTF后缀的文件就是所需的字体文件(非ttf后缀的字体文件我还没试验过)
如果没有window系统的话,可以通过字体下载网站下载:
https://www.fontpalace.com/font-details/SimHei/
https://fontzone.net/font-download/simhei
3.2 修改画图代码
把上一步骤的字体文件拷贝到电脑的任意位置,然后参照下面方式,即可修改字体
import matplotlib.pyplot as plt
from matplotlib.font_manager import *
myfont = FontProperties(fname='TTF文件路径.ttf')
plt.text(0.5, 0.5, '大家好,我是宋体', fontproperties=myfont)
plt.show()
4. 总结
有时候,字体文件用过来会出现这样的bug
RuntimeWarning: Glyph 21397 missing from current font.
就有人开始喷了,“啥玩意,你这也解决不了,浪费老子实践*********(此处省略一万字的自由飞翔)*********”
这坑我踩过,我的解决方式是
换一个其他的字体文件试试,如宋体的simsunb.ttf不行, 我就换成STSUNG.TTF就行了,
不太严谨的解决方案,希望也会对你有帮助吧哈哈哈哈哈