一个中文乱码问题,让我搞的好苦,总结一下。
安装matplotlib
pip安装失败,使用apt-get install matplotlib
安装成功
简单程序
|
|
运行了发现,所有的中文都变成了一个小方框,简单尝试了在开头加#-*- coding: UTF-8 -*-
,和在`’标题’`前加u
,都不好使
动态加载字体
|
|
ukai
是系统里的中文字体。
系统里的中文字体可以通过命令fc-list :lang=zh
列出。
尝试后可以发现title和label的中文显示都正常了,但坐标轴的刻度文字依然不能正常显示。
配置文件matplotlibrc
这个配置文件在/etc/
下,有的在~/.matplotlib/
下
可以通过matplotlib.matplotlib_fname()
打印获得这个路径
编辑该配置文件,找到font.family
,将注释去掉,在下面的font.sans-serif : Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif
加上中文字体SimHei
|
|
或者直接改为font.family : SimHei
SimHei可以到http://fontzone.net/download/simhei
下载,我尝试过使用上面提到的ukai,没有效果。
下载的SimHei放到下面任何一个路径均可:123/usr/share/fonts/truetype/usr/share/matplotlib/mpl-data/fonts/ttf~/.fonts
清除缓存
做了上面的更改,发现并没有什么卵用。
到~/.cache/matplotlib
下的文件删掉,就ok了。
另一种方式,动态配置
|
|
这样可以不通过配置文件,动态配置