Linux系统Ubuntu解决matplotlit plt画图中文乱码方框问题
发布网友
发布时间:2024-08-19 20:54
我来回答
共1个回答
热心网友
时间:2024-08-22 06:30
在Ubuntu Linux系统中,若遇到Matplotlib绘图中文显示为乱码或方框的问题,可以按照以下步骤解决:
1. 首先,从GitHub(github.com/StellarCN/sc...)下载中文字体SimHei.ttf文件。
2. 将下载的字体文件放置在虚拟环境的字体目录中。可以通过导入matplotlib并打印matplotlib.matplotlib_fname()来找到对应目录,如`/nfs/users/.../venv/lib/python3.6/site-packages/matplotlib/mpl-data/matplotlibrc`。向上一级目录查找`mpl-data/fonts/ttf`文件夹,将SimHei.ttf放入其中。
3. 修改matplotlibrc配置文件。找到第249、257和400行,确保删除了 '#' 符号。将字体设置为`font.family: sans-serif`,`font.sans-serif: SimHei, Bitstream Vera Sans, ...`,并将`axes.unicode_minus: False`中的`True`改为`False`。
4. 如果以上步骤不生效,可能需要删除matplotlib的缓存目录。运行`import matplotlib`并打印`matplotlib.get_cachedir()`,找到缓存路径(如`/home/joan/.cache/matplotlib`),然后删除该目录。
5. 修改后可能不会立即生效,可以执行代码重新加载字体以确保更改生效。例如,运行包含`plt.plot()`、`plt.xlabel()`、`plt.ylabel()`和`plt.title()`的代码,保存为`./fig1.png`。
6. 参考以下链接获取更多解决方案:
- [sail.name/2018/06/09/ch...]
- [codenong.com/cs10641490...]
按照以上步骤操作,通常能解决Matplotlib在Ubuntu中显示中文乱码的问题。如果仍然遇到问题,可以尝试逐一排查或寻求更详细的文档指导。