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

matplotlib的中文设置

程序员文章站 2022-03-01 22:19:51
...

在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下只需要修改配置文件就可以了

转载于:https://www.jianshu.com/p/57b94a2c0985