matplotlib的中文设置

2018-11-10  本文已影响16人  grey_27

在matplotlib中绘制图表时中文不能正确显示,这是因为matplotlib的默认设置中没有支持中文,只需要对设置进行一定更改就可以了

import matplotlib as mpl
mpl.rcParams['font.sans-serif'] = ['SimHei']   #设置简黑字体
mpl.rcParams['axes.unicode_minus'] = False # 解决‘-’bug

如果你不嫌麻烦那么每次在用matplotlib作图前加上这两句就可以了(仅限windows用户) 但我们可以对配置文件下手彻底解决这个问题


在此之前先说一下为什么linux系统执行这两条语句之后并没有效果,原因是在linux的字体中没有simhei.ttf这个文件格式,所以把并不能成功显示中文字体,这时我们也只能对配置文件进行更改才能解决

准备好字体文件(windows不需要)

git clone https://github.com/tracyone/program_font && cd program_font && ./install.sh
安装的字体文件一般在/usr/share/fonts/MyFonts/目录下

找到配置文件的地址

In [2]: mpl.matplotlib_fname()
Out[2]: '/usr/local/lib/python3.5/dist-packages/matplotlib/mpl-data/matplotlibrc'

这返回的是一个文件的路径,他的目录路径即/mpl-data/,先将字体文件复制到mpl-data/fonts/ttf
然后返回再对matplotlibrc这个文件进行修改

# 找到font.family配置项,去掉注释,将值改为对应的字体名字。
font.family         : SimHei

# 找到axes.unicode_minus配置项,去掉注释,将值改为False解决‘-’的问题
axes.unicode_minus  : False

删除缓存文件,使更改生效(windows不需要这步)

缓存文件路径~/.cache/matplotlib直接整个文件夹删除即可
rm ~/.cache/matplotlib -R


之后任意使用matplotlib制图中文都可以正常显示了,windows下只需要修改配置文件就可以了

上一篇下一篇

猜你喜欢

热点阅读