jupyter绘图中文乱码
时间: 2025-04-17 11:32:13 浏览: 44
### 解决 Jupyter Notebook 中 Matplotlib 绘图时中文乱码的方法
在 Jupyter Notebook 使用 Matplotlib 进行绘图时,如果遇到中文字符显示为乱码的情况,可以通过修改配置文件以及设置字体来解决问题。
#### 查找并编辑 `matplotlibrc` 文件
为了确保能够正确加载中文字体,首先需要定位到当前使用的 `matplotlibrc` 配置文件的位置:
```python
import matplotlib
print(matplotlib.matplotlib_fname())
```
这段代码会打印出 `matplotlibrc` 的绝对路径[^1]。接着打开该文件,在其中添加或修改如下几行内容以指定支持中文的字体(例如 SimHei 黑体):
```plaintext
font.family: sans-serif
font.sans-serif: SimHei, DejaVu Sans, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif
axes.unicode_minus: False
```
这一步骤可以使得默认情况下所有图表中的文本都采用黑体字形,并关闭 Unicode 负号的支持以便更好地兼容某些操作系统上的字体渲染特性[^2]。
#### 动态注册自定义字体
除了直接更改全局配置外,还可以通过 Python 代码动态向 Matplotlib 注册新的 TrueType 字体文件 (TTF),从而临时解决特定环境下的问题而不影响其他项目。对于 Windows 用户来说,可以从 C:\Windows\Fonts 目录下找到名为 simhei.ttf 的简体黑体字体文件;而对于 Linux 或 Mac OS X 用户,则可能需要自行下载合适的 TTF 文件并将它们放置在一个合适的地方供后续操作使用。
假设已经获取到了所需的 `.ttf` 文件副本,那么可以在脚本开头加入以下语句完成字体注册过程:
```python
from matplotlib.font_manager import FontProperties
import os.path as osp
# 假设已将 simhei.tff 放入工作区根目录
fp = FontProperties(fname=osp.join('.', 'simhei.ttf'))
plt.rcParams['font.family'] = fp.get_name()
plt.rcParams['axes.unicode_minus'] = False # 正常显示负号
```
上述做法不仅限于本地开发环境中应用,同样适用于远程服务器端部署场景——只需提前准备好相应的字体资源即可[^4]。
最后值得注意的是,不同版本之间可能存在细微差异,因此建议查阅官方文档获取最准确的信息和支持。
阅读全文
相关推荐


















