ubuntu中matplotlib中文无法显示

本文介绍了如何配置matplotlib使其支持显示中文和负号。步骤包括查找matplotlib配置文件,修改字体设置,下载并引入simhei.ttf字体文件,清除缓存,最后重新运行程序即可正常显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

你遇到的问题大概是这样子:

解决方法推荐: 

 1、先查找matplotlibrc的路径

import matplotlib as plt
plt.matplotlib_fname()

2、进入到上述路径中的mpl-data文件夹

 3、修改matplotlibrc

sudo vim matplotlibrc

4、找到以下三个键,修改值,有#号的记得去掉

font.family : sans-serif
font.sans-serif : SimHei
axes.unicode_minus : False

5、自己去网上搜下载simhei.ttf,并将该文件移动到以下目录

/home/daang/.local/lib/python3.8/site-packages/matplotlib/mpl-data/fonts/ttf

6、返回到主目录,清除缓存:

7、再次运行文件就可以啦~

 

 

<think>嗯,用户问的是如何在Ubuntu上配置Matplotlib显示中文。我之前处理过类似的问题,可能需要回忆一下步骤。首先,我记得Matplotlib默认可能没有中文字体,所以需要安装合适的字体,比如SimHei或者文泉驿的字体。然后需要修改Matplotlib的配置文件,设置使用的字体。还有可能需要清除缓存,否则旧的缓存可能会加载新字体。 用户提供的引用提到了一些关键步骤。比如引用[3]说在Ubuntu下要安装fonts-wqy-zenhei和fonts-wqy-microhei这两个包,这样系统就有了中文字体。然后要修改matplotlibrc文件,设置font.sans-serif参数,添加SimHei或者其他中文字体。接着删除缓存目录~/.cache/matplotlib,这样Matplotlib才会重新生成缓存,识别新字体。最后在代码设置rcParams,确保中文正常显示,并且处理负号的问题。 引用[4]提到下载SimHei字体,可能需要手动放到Matplotlib的字体目录下。这可能是因为有些时候系统虽然安装了字体,但Matplotlib没有正确找到,所以需要手动复制字体文件到Matplotlib的字体文件夹,然后更新字体缓存。 步骤大概是这样:安装字体、配置Matplotlib、清除缓存、测试。可能需要分情况讨论,比如系统有没有安装中文字体,或者是否需要手动添加字体文件。另外,用户可能用的是虚拟环境还是系统Python,这会影响matplotlibrc的位置,过通常修改全局的配置文件或者在代码设置应该都可以。 需要注意的常见问题包括:缓存没有清除导致配置生效,字体名称写错,或者没有正确设置sans-serif字体族。还有可能需要确认Matplotlib的版本,同版本配置方式是否一致。比如引用[1]提到要确定Matplotlib版本,但可能现在大多数情况下步骤都类似。 另外,代码示例部分需要展示如何设置rcParams,以及可能需要在每个脚本添加这些设置,或者一劳永逸地修改配置文件。用户可能希望有一个持久的解决方案,而是每次写代码都设置一遍,所以修改matplotlibrc是比较好的方法。 总结下来,步骤应该是: 1. 安装中文字体包或下载字体文件。 2. 将字体文件复制到Matplotlib的字体目录(如果需要的话)。 3. 修改matplotlibrc配置文件,设置字体相关参数。 4. 删除缓存文件。 5. 在代码中配置rcParams或确保配置文件生效。 6. 测试是否成功。 需要检查每个步骤是否正确执行,比如字体路径是否正确,配置文件的修改是否保存,缓存是否删除干净。如果用户遇到问题,可能需要检查这些步骤有没有遗漏或者错误。</think>在Ubuntu系统中配置Matplotlib支持中文显示,需依次完成以下步骤: --- ### **步骤1:安装中文字体包** ```bash sudo apt-get install fonts-wqy-zenhei fonts-wqy-microhei # 安装文泉驿和微米黑字体[^3] ``` --- ### **步骤2:手动添加SimHei字体(可选)** 如果仍需使用SimHei字体: 1. 下载[SimHei.ttf](https://github.com/StellarCN/scp_zh/blob/master/fonts/SimHei.ttf) 2. 将字体文件复制到Matplotlib字体目录: ```bash # 查找Matplotlib字体路径 python -c "import matplotlib; print(matplotlib.matplotlib_fname())" # 进入字体目录(通常为/path/to/matplotlib/mpl-data/fonts/ttf/) cp SimHei.ttf /path/to/matplotlib/mpl-data/fonts/ttf/ # 替换实际路径[^4] ``` --- ### **步骤3:修改Matplotlib配置文件** 1. 打开配置文件`matplotlibrc`: ```bash sudo gedit $(python -c "import matplotlib; print(matplotlib.matplotlib_fname())") # 自动定位文件[^2] ``` 2. 修改以下参数: ```python font.family : sans-serif font.sans-serif : WenQuanYi Zen Hei, SimHei, DejaVu Sans # 添加中文字体到首选项[^3] axes.unicode_minus : False # 解决负号显示异常 ``` --- ### **步骤4:清除字体缓存** ```bash rm -rf ~/.cache/matplotlib # 强制重新生成字体缓存[^4] ``` --- ### **步骤5:代码中显式设置(可选)** 在Python脚本开头添加: ```python import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = ['SimHei', 'WenQuanYi Zen Hei'] # 指定中文字体 plt.rcParams['axes.unicode_minus'] = False # 修复负号显示 ``` --- ### **验证配置** 运行测试代码: ```python import matplotlib.pyplot as plt plt.plot([1,2,3], label='测试中文') plt.xlabel('横轴标签') plt.ylabel('纵轴标签') plt.legend() plt.show() ``` 若标签正常显示中文,则配置成功。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值