Matplotlib 中文显示问题
问题
常见表现:中文变成方块/乱码,或提示“找不到字体”,以及负号 - 显示异常。
先判断你遇到哪一种
- A:报错找不到字体(提示缺少中文字体)→ 看「一、安装中文字体」
- B:不报错但中文仍是方块/乱码 → 看「二、让 Matplotlib 使用中文字体」
一、安装中文字体
适用于
提示找不到字体
当 Matplotlib 提示缺少字体时,需要把中文字体文件放入它的字体目录。

1)准备字体文件
建议使用常见 TrueType 字体(.ttf):
把字体文件放到工作空间(例如放在 /workspace/ 下)。

2)安装字体到 Matplotlib 字体库ss
-
首先进入 Matplotlib 的字体目录,在终端中执行:
cd /root/.pyenv/versions/3.11.1/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf注意这里修改的 3.11.1 python 版本,如需修改其他版本的需根据类似目录找到字体路径
-
将工作空间中的字体文件移动到该目录,使用mv命令:
mv /workspace/字体文件名.ttf .例如移动黑体文件:
mv /workspace/SimHei.ttf .
3)验证字体安装
在终端中执行 ll 命令,查看字体文件是否已成功移动到字体目录中,确认文件名正确显示。

二、让 Matplotlib 使用中文字体
适用于
字体已存在但仍乱码/方块
通常是默认字体没有包含中文字体,按下面两种方式配置即可。

方案 1:临时配置(只对当前代码生效)
在代码开头加入:
import matplotlib.pyplot as plt
# 让 Matplotlib 优先使用中文字体(按可用性自动选择)
plt.rcParams["font.family"] = ["SimHei", "SimSun", "Microsoft YaHei", "Microsoft-YaHei"]
# 负号显示异常时打开
plt.rcParams["axes.unicode_minus"] = False
方案 2:永久配置(修改 matplotlibrc)
- 找到配置文件路径:
import matplotlib
print(matplotlib.matplotlib_fname())

- 打开
matplotlibrc,设置字体与负号:
font.family : sans-serif
font.sans-serif : SimHei, SimSun, Microsoft YaHei, Microsoft-YaHei
axes.unicode_minus : False

- 保存后 重启 Jupyter 内核 使配置生效。
