ubuntu下matplotlib中文乱码问题

主要原因是matplotlib安装在ubuntu上没有中文的ttf字体,所以画图出来中文全是方块,试遍了网上的方法都不行,最后找到这两篇博客结合起来顺利解决问题

https://blog.csdn.net/lucky__ing/article/details/78699198

https://blog.csdn.net/qq_37046330/article/details/83113496

1、先下载个中文字体 mysh.ttf

2、把上面的那个文件放在matplotlib字体文件夹,如果你找不到matplotlib安装文件夹,可以先打开python,然后使用命令

import matplotlib
print(matplotlib.__file__)


就会输出matplotlib的安装位置,例如位置为/usr/local/lib/python3.5/dist-packages/matplotlib,那就把字体文件放在/usr/local/lib/python3.5/dist-packages/matplotlib/mpl-data/fonts/ttf/里面

3、删除matplotlib缓存文件夹内所有的东西。一般在~/.cache/matplotlib,如果不知道在哪儿,打开python,使用以下命令就可以输出

import matplotlib
print(matplotlib.get_cachedir())

4、替换默认字体

在matplotlib中有默认使用的字体,我们所需要做的就是把默认字体替换为中文字体。我们使用命令cd进入到matplotlib字体存放路径下也就是我们之前所记的路径1,例如:cd /home/lhf/.local/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf 在进入matplotlib 字体路径后ls指令后我们将可以看到里面的所有字体,其中DejaVuSans.ttf为matplotlib默认字体, msyh.ttf是我们复制过去的即将使用的字体。我们将matplotlib默认的字体文件改名为“uondamDejaVuSans.ttf”命令为(1),将msyh.ttf改名为“DejaVuSans.ttf”命令为(2)
(1)sudo mv DejaVuSans.ttf quondamDejaVuSans.ttf
(2)sudo mv msyh.ttf DejaVuSans.ttf

最后重启机器

然后就解决了问题。

发布了131 篇原创文章 · 获赞 12 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/weixin_41519463/article/details/102755324