Python问题总结:关于matplotlib中文字体显示问题的总结
1 问题描述
在使用Matplotlib绘图时,如果我们使用中文,可能会出现如下情况
这种情况的出现是因为matplotlib绘制图像的默认字体不支持中文,只要切换为中文字体即可
2 解决方法
2.1 网上提供的方法
网上提供的解决方法大多比较直接,如
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = 'SimHei'
或者
import matplotlib
matplotlib.rc("font", family='SimHei')
即修改了字体为SimHei,当然也可以改成其它支持中文的字体。
这种方式确实是正确的方式,至少应用在Windows系统上是基本上没有什么问题的。
但是其他如同一些Linux系统可能并不包含这种字体,所以这种方法不能适用所有系统
2.2 补充方法
针对一些中文字体库并不足够丰富的系统,我们首先要了解系统中有哪些字体
可以在Python执行如下命令查看
import matplotlib
for i in matplotlib.font_manager.fontManager.ttflist:
print(i.name)
# 这里的i是字体类,name是i的属性,即字体名称
此时再用列出字体中支持中文的字体再作为替换即可
2.3 对Linux系统的进一步补充
如果不知道哪些字体是支持中文的,除了可以网上搜索外,在Linux系统中还可以使用如下命令
fc-list #该命令用于列举系统中的字体
fc-list :lang=zh #该命令用于列举系统中支持中文的字体
第二个命令可以列举出支持中文的字体,可以用做替换
这样差不多就可以解决大部分的字体问题了