python之matplotlib中文乱码的解决办法

一、 解决字体问题

很多文章都讲了matplotlib中文乱码的问题,但是有一个关键问题忽略了,就是字体拷贝的问题,这也是我会写这篇简书的原因。
我的环境:

os:deepin15.5 64位
python:anaconda2

  1. 找到win7下的字体
    我找到的字体是 “ 仿宋GB2312.tff”,
    重点
  • 字符名并不是“仿宋GB2312.tff”,这是我总是出差的根源,打开该tff文件查看
  • vim 仿宋GB2312.tff 虽然大部分是乱码,但是还是可以看见“(C) Copyright GreatWall Computer Co. 1994FangSong_GB2312RegularFangSong_GB2312”的字样,记住了说明这个字体的名称是“FangSong_GB2312”
  1. 拷贝字体
  • 找到matplotlib的字符路径
    我的环境是“anaconda2/lib/python2.7/site-packages/matplotlib/mpl-data/fonts/tff”
    如果你不知道,可以ipython下用下面的命令找到matplotlibrc文件,fonts文件夹和这个文件同目录
>>> import matplotlib
>>> print matplotlib.matplotlib_fname()

二、 执行时用配置的方法解决中文问题

这部分很多文章讲了,这里就简单一点

mpl.rcParams['font.sans-serif'] = ['FangSong_GB2312']

如果出现

UserWarning: findfont: Font family [u'sans-serif'] not found

这是字符名称没找到的问题, 请参考第一部分

三、修改配置文件,解决问题

请参考:

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容