想要分析一批数据,画出图形会比较直观。所以就搜索了一下各种软件,最终选择使用python的matplotlib。原因也是因为python使用起来比较方便,虽然R才是分析数据的首选,不过,没有R的基础,所以也就不再尝试了。

首先要说它的安装,本来想在它的官网上下载来安装,无奈,始终无法进行下载。最终,无意间发现了Unofficial Windows Binaries for Python Extension Packages,里面的库很全,在进行安装时,所提示缺少的库,在其上面都能够找到,不错。安装不用多说了,首先是有一款python,然后就是找属于它的matplotlib、numpy等等。我为了方便,都是在上面给出的网站,下载的exe程序,只要点击安装即可。

安装完成后,便尝试画图,起初也没有什么问题,直至尝试向图片中添加中文,便有乱码出现。网上的主流方法是修改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

即去掉注释,并在配置值中添加 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替换(不做这一步,我测试了也是可以的!)

#font.sans-serif     : nothing

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

#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文件也是可行的。只是担心以后会有什么副作用。。。

Matplotlib中文乱码的更多相关文章

  1. ubuntu系统下matplotlib中文乱码问题

    参考 [ubuntu系统下matplotlib中文乱码问题 - CSDN博客](https://blog.csdn.net/jeff_liu_sky_/article/details/54023745 ...

  2. 第26月第7天 mac如何matplotlib中文乱码问题

    1.mac如何matplotlib中文乱码问题 先查看 ~/.matplotlib/fontList.json 添加SimHei字体(simhei.ttf文件)到 /Library/Framework ...

  3. Linux 系统下 matplotlib 中文乱码解决办法

    亲测有效的方法之一: 1.下载中文字体simhei.ttf SimHei可以到http://fontzone.net/download/simhei下载 2.找到matplotlib相关的font文件 ...

  4. 彻底解决matplotlib中文乱码问题(转)

    彻底解决matplotlib中文乱码问题 1.环境查看a.系统版本查看[hadoop@p168 ~]$ cat /etc/redhat-releaseCentOS Linux release 7.2. ...

  5. Matplotlib中文乱码解决办法

    Matplotlib中文乱码 解决方法如下: 首先设置源码文件编码方式为UTF-8 #-*- coding: utf-8 -*- 接着设置字体属性字典 font = {'family': 'SimHe ...

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

    1.修改matplotlibrc文件 进入Python安装目录下的Lib\site-packages\matplotlib\mpl-data目录,打开matplotlibrc文件,删除font.fam ...

  7. [python] virtualenv下解决matplotlib中文乱码

    1. 安装中文字体 一般系统自带wqy-microhei,其ttc文件位于/usr/share/fonts/truetype/wqy/wqy-microhei.ttc 2. 将ttc文件复制到pyth ...

  8. Matplotlib中文乱码问题

    一.找到并修改matplotlibrc文件 进入Python安装目录下的Lib\site-packages\matplotlib\mpl-data目录,用记事本打开matplotlibrc文件:找到f ...

  9. matplotlib中文乱码解决方法

    每次编写代码时进行参数设置 import matplotlib.pyplot as plt plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签 ...

随机推荐

  1. 获取和设置iframe中的元素

    http://www.cnblogs.com/gao-qiang/archive/2012/09/19/2694336.html http://java-my-life.iteye.com/blog/ ...

  2. 如何给Ubuntu 安装Vmware Tools

    http://jingyan.baidu.com/article/3065b3b6e8dedabecff8a435.html

  3. Android Studio插件之FindBugs

    1.安装方法: AndroidStudio->Settigns->Plugins->Browse repositories->search "findBUgs-IDE ...

  4. 征服 Redis + Jedis + Spring —— 配置&常规操作

    Spring提供了对于Redis的专门支持:spring-data-redis.此外,类似的还有: 我想大部分人对spring-data-hadoop.spring-data-mongodb.spri ...

  5. Python数据分析扩展库

    Anaconda和Python(x,y)都自带了下面的这些库. 1. NumPy 强大的ndarray和ufunc函数. import numpy as np xArray = np.ones((3, ...

  6. sql2012管理

    一.还原完整备份的语法如下: RESTORE DATABASE { database_name | @database_name_var }                  --数据库名 [ FRO ...

  7. mysql 批量删除分区

    alter table titles drop partition p01; use zabbix; mysql> source drop_par.sql [oracle@oadb mysql] ...

  8. Linux c 信号—pause、sigsuspend 的相同于区别

    pause函数:      功能:让进程暂停直到信号出现 #include<unistd.h> intpause(); 函数说明:pause()会令目前的进程暂停(进入睡眠状态),直至信号 ...

  9. 恢复sudo的权限的命令

    出错的原因:不小心给了/etc/的所有文件的777属性,出现了sudo 的错误. 1.pkexec chmod 0440 /etc/sudoers 2.pkexec chmod 0440 /etc/s ...

  10. Jquery的一些简单使用记录

    //平滑滚动到底部 $(".list").scrollTo('100%', '100%', { easing: 'swing' }); //直接滚动至底部(无效果) $('.lis ...