python 中文乱码-matplotlib图例中文乱码?

解决了五个小时终于搞定,决定写个回答纪念一下,不知道有没有人看

1、下载中文字体(黑体,看准系统版本)SimHei - Free Font Download?www.fontpalace.comv2-afbae3f8d9730dc22516b7c48a261282_120x160.jpg

2、解压之后在系统当中安装好,我的是Mac,打开字体册就可以安装了,Windows的在网上搜一下吧

3、找到matplotlib字体文件夹,例如:matplotlib/mpl-data/fonts/ttf,将SimHei.ttf拷贝到ttf文件夹下面 />

4、修改配置文件matplotlibrc 同样在matplotlib/mpl-data/fonts目录下面,修改下面三项配置

font.family : sans-serif

font.sans-serif : SimHei, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif

axes.unicode_minus:False,#作用就是解决负号'-'显示为方块的问题

假如你只做到了这里,那要小心喽,代码里面还是会报错,画图还是会显示方块,就问你气不气。。。。

5、最重要的一步来了,上面的几步我很快就弄好了,就这最后一步死活中文就是显示方块,气死我了,原因是改了配置之后并不会生效,需要重新加载字体,在Python中运行如下代码即可:

from matplotlib.font_manager import _rebuild

_rebuild() #reload一下

就改好啦,这样默认字体就显示成中文啦,之后也不需要在代码里面添加额外的代码去设定语言,简直棒棒哒。说真的,我都有点佩服我自己,午饭都没吃。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值