解决ubuntu系统matplotlib库中文无法显示或乱码

本文介绍了一种在Ubuntu系统中解决Matplotlib显示中文的方法。具体步骤包括:从Windows C盘复制SimHei.ttf字体文件至Ubuntu的指定路径;修改matplotlibrc配置文件;最后清除matplotlib缓存文件。通过这些步骤,可以成功实现Matplotlib中文字符的正常显示。

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

笔者在网上找了各种各样的教程,尝试了很多方法,最终发现以下方法最简单。

1. 在ubuntu系统中,找到原windows系统的C盘,然后搜索simhei.ttf,把该文件复制。

2. 我的matplotlib库是在Ananconda中,来到  home/Anaconda/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf目录下

把先前复制的simhei.ttf文件粘贴到此处。

3.复制以下代码:

font.family         : sans-serif
font.sans-serif         : SimHei     # SimHei 也可以写成小写的simhei
axes.unicode_minus  : False

来到home/Anaconda/lib/python3.6/site-packages/matplotlib/mpl-data/matplotlibrc中,

打开matplotlibrc文件,把代码粘贴到截图中的位置。

4.删除/.cache/matplotlib:

如何找到.cache呢?

在如图的主文件夹中,按Ctrl+H,可以把隐藏的.cache文件夹显示出来。

然后进入.cache文件夹中,找到matplotlib,删除它。

至此,步骤结束。

中文终于可以显示显示出来啦

Ubuntu系统中使用Python的matplotlib进行绘图时,中文乱码的问题可能是由于matplotlib无法找到合适的中文字体所导致。为了解决这个问题,首先需要确保系统已经安装了支持中文显示的字体。在Ubuntu系统中,可以通过运行`fc-list :lang=zh`命令来查看已安装的中文字体列表,例如Noto Sans CJK、ARPLUMingTWMBE等。接下来,可以通过matplotlib的配置设置来指定使用这些中文字体。这可以通过修改matplotlib的配置文件者在脚本中直接设置`font.sans-serif`属性来实现,如下所示: 参考资源链接:[解决Python matplotlib中文乱码:清除字体缓存与设置](https://wenku.youkuaiyun.com/doc/17k0d7v5z1?spm=1055.2569.3001.10343) ```python import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = ['Noto Sans CJK SC', 'SimHei'] # 设置支持中文的字体列表 plt.rcParams['axes.unicode_minus'] = False # 保证负号正常显示 ``` 在设置了正确的字体之后,如果问题仍然存在,可能是因为matplotlib的字体缓存没有更新。在Linux系统中,matplotlib的字体缓存通常位于`~/.cache/matplotlib`目录下。可以尝试删除这个目录及其内容,然后重新运行绘图代码,让matplotlib重新加载字体信息。此外,如果确认系统安装了正确的中文字体,但问题依旧,建议检查Python环境和matplotlib版本是否兼容,者是否存在环境变量配置错误导致的字体路径冲突。 通过上述步骤,应该能够解决Ubuntu系统上使用Python的matplotlib绘图时遇到的中文乱码问题。如果希望深入学习更多关于matplotlib配置和系统字体管理的知识,可以参考《解决Python matplotlib中文乱码:清除字体缓存与设置》文档,该文档提供了详尽的解决方案和步骤,帮助用户彻底解决这一常见的可视化问题。 参考资源链接:[解决Python matplotlib中文乱码:清除字体缓存与设置](https://wenku.youkuaiyun.com/doc/17k0d7v5z1?spm=1055.2569.3001.10343)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值