想要分析一批数据,画出图形会比较直观。因此就搜索了一下各类软件,最终选择使用python的matplotlib。缘由也是由于python使用起来比较方便,虽然R才是分析数据的首选,不过,没有R的基础,因此也就再也不尝试了。python
首先要说它的安装,原本想在它的官网上下载来安装,无奈,始终没法进行下载。最终,无心间发现了Unofficial Windows Binaries for Python Extension Packages,里面的库很全,在进行安装时,所提示缺乏的库,在其上面都可以找到,不错。安装不用多说了,首先是有一款python,而后就是找属于它的matplotlib、numpy等等。我为了方便,都是在上面给出的网站,下载的exe程序,只要点击安装便可。windows
安装完成后,便尝试画图,起初也没有什么问题,直至尝试向图片中添加中文,便有乱码出现。网上的主流方法是修改matplotlibrc文件,以下:测试
1,找到字体
#font.family : sans-serif网站
去掉注释编码
2,找到spa
#font.sans-serif : Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif.net
修改成debug
font.sans-serif : Microsoft YaHei ,Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serifcode
即去掉注释,并在配置值中添加 Microsoft YaHei ,
3,在windows下搜索msyh.ttf,即微软的雅黑字体,
并将msyh.ttfcopy到python按照目录下的
x:/install_dir/Lib/site-packages/matplotlib/mpl-data/fonts/ttf
目录
其中x:/install_dir是python的安装目录
我在按上述操做的时候,遇到的问题:首先是在整个电脑全盘搜索都没有发现msyh.ttf文件,却是将Microsoft YaHei UI 字体文件拷贝到python相应目录下的时候发现msyh.ttf,不过按照一样的方法,把fontlist.cache中对应的Microsoft YaHei的值改成msyh.ttc也是徒劳。把msyh.ttc拷贝到python路径下的ttf文件夹下也是不行。后来,有尝试使用楷体的ttf文件:在fontlist.cache中搜索楷体ttf文件对应的变量名‘KaiTi’,而后在也是按照上述的步骤操做,在matplotlibrc中修改也是徒劳。
下面是另外一种方法:(解决matplotlib图像中文显示问题)
1. 找到matplotlib安装目录,好比C:\Development\python26\Lib\site-packages\matplotlib\mpl-data目录下的matplotlibrc文件,找到#font.sans-serif : …这一行,把后面的修改成’nothing’,这样作是强制让系统没法找到英文字体,而是用matplotlib默认字体Vera.ttf替换(不作这一步,我测试了也是能够的!)
1
|
#font.sans-serif : nothing
|
2. 同个文件中找到#verbose.level : silent这行。把silent修改成debug,这样作是为了看更详细的输出.(不作这一步,我测试了也是能够的!)
1
|
#verbose.level : debug
|
3. 找到字体目录C:\Development\python26\Lib\site-packages\matplotlib\mpl-data\fonts\ttf下的Vera.ttf。这里咱们用中文楷体能够从windows/system32/fonts拷贝过来,直接张贴到前面的ttf目录下,而后改名为Vera.ttf,至关于用中文的字体替换掉以前的英文字体,偷龙转凤!!
4. 程序中指定文件编码# -*- coding: utf-8 -*- ,而且确保要输出的中文是unicode形式,检查是否为unicode代码:isinstance(s, unicode)。
上述操做,其实只要将Vera.ttf文件替换掉便可,不用修改matplotlibrc文件也是可行的。只是担忧之后会有什么反作用。。。