想要分析一批数据,画出图形会比较直观。所以就搜索了一下各种软件,最终选择使用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. VBA 开发学习--基础语法3

    VBA字符串函数列表 Trim(string) 去掉string左右两端空白 Ltrim(string) 去掉string左端空白 Rtrim(string) 去掉string右端空白 Len(str ...

  2. (转)eclipse 启动参数介绍(如添加插件时,如果不显示,则使用eclipse -clean启动)

    本文转载自:http://hi.baidu.com/dd_taiyangxue/blog/item/08950f3991b4e8c9d46225c8.html 其实,Eclipse是一个可以进行非常灵 ...

  3. STL模板_概念

    模板和STL一.模板的背景知识1.针对不同的类型定义不同函数版本.2.借助参数宏摆脱类型的限制,同时也因为失去的类型检查而引 入风险.3.借助于编译预处理器根据函数宏框架,扩展为针对不同类型的 具体函 ...

  4. nginx args

    $args $content_length $content_type $document_root $document_uri $host $http_user_agent $http_cookie ...

  5. js基础参数获取

    1 获取浏览器中url中的参数,会自动把问号"?"去掉 function getParamsFromHref() { //调试用 var wyl_ = window.locatio ...

  6. java之观察者模式

    import java.util.Observable; import java.util.Observer; class House extends Observable {     private ...

  7. linux 定时执行任务

    测试可以了,做个笔记 系统是centos 6.3 1,直接命令 crontab -e 编辑文件,里面写时间和你想要执行的命令. 例子 */1 * * * * sh /home/guanliyang/t ...

  8. 用1个 2个3个 5个div实现 十字架

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. Eclipse中搭建Python开发环境

    转载:http://www.cnblogs.com/realh/archive/2010/10/04/1841907.html Eclipse+PyDev环境搭建 1.准备工作 JDK6 Java 开 ...

  10. Oracle ODI系列之一(ODI知识模块)

    Oracle ODI系列之一(ODI知识模块)     ODI简介 ODI(Oracle Data Integrator)前身是Sunopsis Active Integration Platform ...