Python问题总结:关于matplotlib中文字体无法正常显示问题的总结

Python问题总结:关于matplotlib中文字体显示问题的总结

  • 1 问题描述
  • 2 解决方法
    • 2.1 网上提供的方法
    • 2.2 补充方法
    • 2.3 对Linux系统的进一步补充

1 问题描述

在使用Matplotlib绘图时,如果我们使用中文,可能会出现如下情况


这种情况的出现是因为matplotlib绘制图像的默认字体不支持中文,只要切换为中文字体即可

2 解决方法

2.1 网上提供的方法

网上提供的解决方法大多比较直接,如

importmatplotlib.pyplotasplt plt.rcParams['font.sans-serif']='SimHei'

或者

importmatplotlib matplotlib.rc("font",family='SimHei')

即修改了字体为SimHei,当然也可以改成其它支持中文的字体。
这种方式确实是正确的方式,至少应用在Windows系统上是基本上没有什么问题的。
但是其他如同一些Linux系统可能并不包含这种字体,所以这种方法不能适用所有系统

2.2 补充方法

针对一些中文字体库并不足够丰富的系统,我们首先要了解系统中有哪些字体
可以在Python执行如下命令查看

importmatplotlibforiinmatplotlib.font_manager.fontManager.ttflist:print(i.name)# 这里的i是字体类,name是i的属性,即字体名称

此时再用列出字体中支持中文的字体再作为替换即可

2.3 对Linux系统的进一步补充

如果不知道哪些字体是支持中文的,除了可以网上搜索外,在Linux系统中还可以使用如下命令

fc-list#该命令用于列举系统中的字体fc-list :lang=zh#该命令用于列举系统中支持中文的字体

第二个命令可以列举出支持中文的字体,可以用做替换
这样差不多就可以解决大部分的字体问题了