解决matplotlib中文乱码问题(Windows)

matplotlib是Python著名的绘图库,默认并不支持中文显示,因此在不经过修改的情况下,无法正确显示中文。本文将介绍如何解决这一问题的方法。

网上的主流方法是修改matplotlibrc文件,如下(但是没有效果):

1,找到

#font.family:sans-serif

去掉注释

2,找到

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

修改为

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

即去掉注释,并在配置值中添加 MicrosoftYaHei ,

3,在windows下搜索msyh.ttf,即微软的雅黑字体

并将msyh.ttf  copy到python按照目录下的

D:\Python27\Lib\site-packages\matplotlib\mpl-data\fonts\ttf目录

细节注释:按照上述的步骤操作,在matplotlibrc中修改也是徒劳。

 

下面是另一种方法:(解决matplotlib图像中文显示问题

1、找到matplotlib安装目录,

比如D:\Python27\Lib\site-packages\matplotlib\mpl-data目录下的matplotlibrc文件,找到#font.sans-serif :…这一行,把后面的修改为’nothing’,这样做是强制让系统无法找到英文字体,而是用matplotlib默认字体Vera.ttf替换(不做这一步,我测试了也是可以的!)

#font.sans-serif     : nothing

2、同个文件中找到#verbose.level : silent这行。把silent修改为debug,这样做是为了看更详细的输出.(不做这一步,我测试了也是可以的!)

1

#verbose.level  : debug

3、 找到字体目录D:\Python27\Lib\site-packages\matplotlib\mpl-data\fonts\ttf下的Vera.ttf。这里我们用中文楷体可以从C:\Windows\Fonts拷贝过来,直接张贴到前面的ttf目录下,然后更名为Vera.ttf,相当于用中文的字体替换掉之前的英文字体,偷龙转凤!!

4. 程序中指定文件编码# -*-coding: utf-8 -*- ,并且确保要输出的中文是unicode形式,检查是否为unicode代码:isinstance(s,unicode)。

上述操作,其实只要将Vera.ttf文件替换掉即可,不用修改matplotlibrc文件也是可行的。只是担心以后会有什么副作用。。。

参考网址:http://www.cnblogs.com/idealing/p/3611361.html

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值