完美解决Pycharm中matplotlib画图中文乱码问题

顾星河
顾星河
发布时间:2026-10-14| 4人浏览过
原创

本文详细解析在Pycharm中使用matplotlib绘制图表时出现中文乱码的解决方法。通过下载并配置SimHei字体,修改matplotlibrc文件,以及运行字体重建命令,可有效解决中文标签显示异常及负号方块化问题,确保图表输出清晰可读。

Matplotlib简介与乱码背景

Matplotlib是Python生态中一款功能强大的绘图库,其操作逻辑与MATLAB相似,因此熟悉MATLAB的用户能够迅速上手Matplotlib的使用。

针对在Pycharm环境中使用matplotlib绘图时常见的中文乱码问题,本文将提供一套完整且详细的解决方案,帮助读者顺利解决该困扰。

本文的操作环境基于MacOS系统,但Windows系统的处理流程与之基本一致,用户可参考以下步骤进行操作。

字体下载与安装配置

第一步是获取中文字体文件,建议下载SimHei(黑体)字体。

可通过以下GitHub链接下载SimHei字体文件:https://github.com/StellarCN/scp_zh/blob/master/fonts/SimHei.ttf

下载完成后,直接双击该字体文件进行系统安装。

安装后,需将SimHei.ttf文件移动至matplotlib的字体目录中。具体路径可通过在Pycharm中运行特定代码打印获取,例如笔者所在环境的路径为/Library/Python/3.8/site-packages/matplotlib/mpl-data/matplotlibrc/mpl-data/fonts/ttf/,请根据实际安装路径调整。


import matplotlib
path = matplotlib.matplotlib_fname()
print(path)

修改配置文件与重建字体缓存

接着,找到matplotlib配置目录下的matplotlibrc文件并进行编辑。需要取消相关配置的注释符号(即去掉前面的#号),并将第三行对应的值修改为False,以启用特定设置。


font.family   : sans-serif  
font.sans-serif  : SimHei, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif 
axes.unicode_minus:False,#作用就是解决负号'-'显示为方块的问题

完成配置后,需在Pycharm或Python终端中执行字体重建命令,使配置生效。


from matplotlib.font_manager import _rebuild
_rebuild()

代码层面的最终设置

最后,在编写matplotlib绘图代码时,需添加两行关键配置代码,以确保中文标签和负号能正常显示。


plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号

至此,关于在Pycharm中完美解决matplotlib中文乱码问题的教程已介绍完毕。如需了解更多相关技巧,可查阅本站历史文章或继续关注后续更新,感谢大家的支持。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。