Python Matplotlib 在 Ubuntu 中显示中文字体的解决方案

远山来客
远山来客
发布时间:2026-10-13 | 5人浏览过
原创

本文介绍在Ubuntu系统中解决Python Matplotlib中文显示乱码的方法。涵盖系统级安装中文字体、Python代码中指定默认字体、直接加载本地字体文件以及将字体复制到Matplotlib目录等四种方案,帮助开发者在无法安装系统字体或Docker环境下实现图表中文正常渲染。

Python Matplotlib 中文显示问题概述

1. 说明

本文主要解决在Ubuntu操作系统中,Python使用Matplotlib库绘图时无法正确显示中文的问题,特别是在系统字体受限或无法安装系统字体的场景下。

系统级安装中文字体

2. 在系统中安装字体

通过命令 $ fc-list :lang=zh # 可以查看当前系统中已安装的中文字体名称及其路径。需要注意的是,中文字体文件通常比英文字体文件大得多。

若系统中没有中文字体,可以通过 apt-get 命令进行安装,具体操作步骤如下:


$ apt-cache search font|grep Chinese # 查看可安装的中文字体
$ sudo apt-get install fonts-wqy-zenhei # 安装字体, 一般字体会被安装到/usr/share/fonts/的某个子目录下,也可以从windows中把ttf,ttc复制到fonts目录下。
$ cd /usr/share/fonts/truetype/xxx/ # cd到字体安装目录下
$ sudo mkfontscale
$ sudo mkfontdir
$ fc-cache -v # 更新字体
$ fc-list :lang=zh # 此时就可以看到新装的字体

Python代码中指定默认字体

3. 在Python中指定字体

完成系统字体安装后,Python即可调用该字体。只需在Python脚本中设置默认字体参数即可生效。


plt.rcParams['font.sans-serif'] = ['Droid Sans Japanese']

以下代码可用于列出Python环境中可用的系统字体名称及其对应的文件路径:


from os import path
from matplotlib.font_manager import fontManager
for i in fontManager.ttflist:
print(i.fname, i.name)

程序中直接加载本地字体文件

4. 在程序中指定字体文件

若因权限限制无法安装系统字体,可以直接在程序中指定字体文件路径来加载字体。具体实现方法如下:


zhfont = mpl.font_manager.FontProperties(fname='../../font/wqy-zenhei.ttc')
plt.xlabel(u'测试一下 ', fontsize=20, fontproperties=zhfont)

注意:在使用Docker配合Notebook进行开发时,必须确保字体文件存放在容器内有权访问的路径下。

手动配置Matplotlib字体目录

5. 为Python安装新字体

将字体文件复制到 /usr/local/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf/ 目录下,随后删除 /root/.cache/matplotlib/ 缓存目录,即可使新字体生效。

总结

以上介绍了在Python Matplotlib中显示中文字体的几种常用方法,希望能对大家有所帮助。如有任何疑问,欢迎留言,小编会及时回复。感谢大家对本站的支持! 如果觉得本文对您有帮助,欢迎转载,请注明出处,谢谢!

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表