Python Matplotlib绘图中文显示乱码或缺失的解决方法

Cora
Cora
发布时间:2026-10-15 | 4人浏览过
原创

本文解决Python使用Matplotlib绘图时横纵坐标中文标签无法显示的问题。通过查询可用字体并设置family为Microsoft YaHei,可修复Glyph missing警告,使图表正确渲染中文。

问题描述

在使用PyCharm调用Matplotlib库绘制图表时,若需为横、纵坐标添加中文标签(如“横坐标”、“纵坐标”),常会遇到中文无法显示的情况。

import matplotlib.pyplot as plt
 
squares = [1, 4, 9, 16, 25]
fig, ax = plt.subplots()
ax.plot(squares, linewidth=3)
#设置图表标题并给坐标轴加上标签。
ax.set_title("主题", size=14)
ax.set_xlabel("横坐标", size=14, color='red')
ax.set_ylabel("纵坐标", size=14, color='red')
 
ax.tick_params(axis='both', labelsize=14)
plt.show()

最终呈现的图表中,中文标签未能正常渲染。

起初怀疑是PyCharm的环境配置有误,经多次调整配置未果。深入排查后发现,根本原因在于Matplotlib默认字体库中缺乏与输入中文字符匹配的字体,导致无法正确显示中文。现将具体解决方案分享如下。

PyCharm控制台输出的错误信息如下:

UserWarning: Glyph 32437 (\N{CJK UNIFIED IDEOGRAPH-7EB5}) missing from current font. FigureCanvasAgg.draw(self)

解决方案

首先,需要查询Matplotlib当前支持的字体列表。可通过以下代码实现:

from matplotlib.font_manager import FontManager
mpl_fonts = set(f.name for f in FontManager().ttflist)
print('all font list get from matplotlib.font_manager:')
for f in sorted(mpl_fonts):
    print('\t' + f)

执行上述代码后,输出结果中会列出一系列包含中文支持的字体名称,例如“Microsoft YaHei”(微软雅黑)、“YouYuan”(幼圆)等。

既然Matplotlib已内置支持中文的字体,为何仍无法显示?直接给出核心代码:在程序中指定使用包含中文支持的字体即可。具体实现方式如下:

import matplotlib
matplotlib.rc("font", family='Microsoft YaHei')

这两行代码的作用是将绘图时的字体设置为“Microsoft YaHei”,即系统中常用的微软雅黑字体。

重新运行程序,图表中的中文标签即可正常显示:

import matplotlib.pyplot as plt
import matplotlib
matplotlib.rc("font", family='Microsoft YaHei')
 
squares = [1, 4, 9, 16, 25]
fig, ax = plt.subplots()
ax.plot(squares, linewidth=3)
#设置图表标题并给坐标轴加上标签。
ax.set_title("主题", size=14)
ax.set_xlabel("横坐标", size=14, color='red')
ax.set_ylabel("纵坐标", size=14, color='red')
 
ax.tick_params(axis='both', labelsize=14)
plt.show()

最终效果如下:

参考来源:https://www.jb51.net/article/246372.htm

如需了解更多Python相关知识,可查阅本站专题:《Python数学运算技巧总结》、《Python图片操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》。

总结

本文介绍了Python使用Matplotlib绘图时无法显示中文字体的解决方案。更多Matplotlib绘图相关中文显示问题,欢迎搜索本站往期文章或继续浏览后续内容,感谢支持!

本站声明

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

Python 相关产品和应用

全部下载

专题列表