欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ubuntu下matplotlib中文乱码问题

程序员文章站 2022-03-24 15:33:00
...

主要原因是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

 

然后就解决了问题。