在ubuntu 下利用matplotlib 绘图的时候,图像上中文无法显示。以下是我的解决办法:
注意下面复制字体路径与配置文件路径跟Python环境路径有关
1. 下载中文字体simhei.ttf, 网址为http://fontzone.net/download/simhei
或者直接从Windows 拷贝
2. 复制字体
对于复制字体,有两种方式,一种是放在系统字体目录下,一种是放在matplotlib的字体目录下。
2.1 复制字体到系统目录
搜索 matplotlib 字体的安装位置locate -b '\mpl-data'
,会得到这个路径/usr/share/matplotlib/mpl-data
下面有fonts/ttf
这个目录,进入这个目录,把刚才下载的simhei.ttf 字体复制到这个目录下,注意权限和归属是否与其它字体一致,我的是归于root用户的,所以用root 用户复制过来。
2.2 复制字体到matplotlib目录
查看matplotlib配置文件位置。
1 | In [6]: import matplotlib |
matplotlib的字体目录就是/root/anaconda3/lib/python3.8/site-packages/matplotlib/mpl-data/
,下载字体放到里面。
3. 查看matplotlib配置文件位置
1 | import matplotlib |
4. 修改配置文件
去除这三列之前的‘#’
在font.sans-serif后添加,SimHei
1 | #font.family : sans-serif |
5. 删除当前用户matplotlib 的缓冲文件(如果没有直接进入第四步)
1 | cd ~/.cache/matplotlib |
6.代码中调整字体
1 | #!/usr/bin/env python |
- 其中#coding:utf-8 说明文件编码格式
- mpl.rcParams[u’font.sans-serif’] = [‘simhei’] 用simhei 字体显示中文
- mpl.rcParams[‘axes.unicode_minus’] = False 这个用来正常显示负号
- plt.title(u’名义GDP’)这里的u 最好不要少