解决Matplotlib绘制的图表不能正确显示中文

    解决这个问题有两种方法,一种方法是修改配置文件,这种方法一劳永逸,以后不必担心中文显示的问题(重新安装Matplotlib除外),另一种方法是通过代码修改,比较局限,但步骤少点。
    先说一下前一种方法,也就是修改配置文件。(仅限于Ubuntu。)在我的系统中,这个文件的路径为/usr/local/lib/python3.4/dist-packages/matplotlib/mpl-data/matplotlibrc,或者你也可以用sudo find / -name matplotlibrc自己搜索出来。
1. 打开这个文件,先找到font.family,去掉这行开头的“#”
2. 再找到font.sans-serif,同样去掉“#”,并且在“:”之后添加系统中存在的中文字体。这里说一下怎么找系统中的中文字体,输入命令fc-list :lang=zh-cn,就可以看到系统中的中文字体了,我这里选用的字体是“FZHei-B01”(有这个字体,可能是我装了WPS的缘故),大家对照这个形式,就知道其他中文字体的名字了。
3. 添加完字体名字,再找到axes.unicode_minus,去掉“#”,并把“True”改成“False”,这样就可以正常显示负号
    接下来说一下后面那种编码解决的方法。首先你还是要找中文字体,不过这次你要找中文字体文件,也就是“.ttf”,在我这里路径为“/usr/share/fonts”。找到路径文件,接下来就是写代码:

from matplotlib.font_manager import FontProperties
font = FontProperties(fname="/usr/share/fonts/wps-office/FZWBK.TTF", size=15)
# 省略若干代码
ax.set_ylabel('分数', fontproperties=font)
plt.legend(prop=font)

前面找到的中文字体文件路径作为上面函数的参数,用于生成中文字体对象。


参考:
python matplotlib中文显示问题
python中matplotlib绘图中文显示问题
ubuntu下matplotlib画图中文乱码问题
matplotlib图例中文显示问题

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值