一、改动matplotlibrc文件 (永久解决方式)

1. 定位matplotlibrc文件

该文件位于[python_install_dir]\Lib\site-packages\matplotlib\mpl-data文件夹下。

2. 改动matplotlibrc文件内容。

matplotlibrc文件部分内容例如以下:

font.family         : sans-serif        #默认情况下。该字段为关闭状态。去掉凝视就可以。
font.sans-serif : Microsoft YaHei , Bitstream Vera Sans,
Lucida Grande, Verdana, Geneva, Lucid,
Arial, Helvetica, Avant Garde,
sans-serif #加入"Microsoft YaHei"

font.sans-serif中加入 Mircosoft YaHei 之后,matplot 通过 C:\Users\[your_account]\.matplotlib\fontList.cache 中存储的映射关系找到字体文件所在的位置。

fontList.cache 文件部分内容例如以下所看到的:

S'Microsoft YaHei
p147
sg16
I700
sg17
g13
sg18
g13
sg19
S'C:\\Windows\\Fonts\\msyhbd.ttf'

Microsoft YaHei字体默认的位置位于 C:\Windows\Fonts\ 文件夹下。

注意:假设第三步操作完之后仍不起作用,能够将 C:\Windows\Fonts\ 文件夹下的Microsoft YaHei字体文件复制到 [python_install_dir]\Lib\site-packages\matplotlib\mpl-data\fonts\ttf\ 文件夹下

3. 重建字体索引列表。

matplotlib不会每次启动时都又一次扫描全部的字体文件并创建字体索引列表,因此在复制完字体文件之后。须要执行以下的语句以又一次创建字体索引列表 ,须要在console中执行以下代码:

>>>from matplotlib.font_manager import _rebuild`
>>>_rebuild()

二、在py文件里显式载入字体 (暂时解决方式)

1. 显示载入matplotlib的字体管理器,代码例如以下:

    # 载入自己定义字体
# fname 为字体文件路径
import matplotlib
myfont = matplotlib.font_manager.FontProperties(fname=r'C:/Windows/Fonts/msyh.ttf')
...
# 在须要显示汉字的地方,指定自己定义字体就可以
plt.xlabel(u'汉字', fontproperties=myfont)
plt.xlabel(u'汉字', fontproperties=myfont)
...

參考文献

http://hyry.dip.jp/tech/book/page/scipy/matplotlib_fast_plot.html#id6

Matplot中文乱码完美解决方式的更多相关文章

  1. js url传值中文乱码完美解决(JAVA)

    js url传值中文乱码完美解决(JAVA) 首先在你的jsp页面这样更改: var url="你要传入的Action的位置&ipid="+ipid+"& ...

  2. 近期在调用 calendar.js 的时候出现中文乱码! 解决方式

    近期写一个小项目的时候:在调用 calendar.js  的时候出现中文乱码! 如图所看到的: 原因在于: 我的jsp 页面,指定的是 UTF-8 编码,然而,调用的 calendar.js 的编码确 ...

  3. Java Web 开发中的中文乱码与解决方式

    乱码产生的原因 不管是request乱码还是response乱码,其实都是由于客户端(浏览器)跟服务器端采用的编码格式不一致造成的.以request乱码为例:浏览器向服务器发送请求,因为浏览器与服务器 ...

  4. jforum(2)--中文乱码的解决方式

    安装好jforum后可能出现如下乱码页面: 解决方式 1.在建数据库时要用如下语句: CREATE DATABASE JForum DEFAULT CHARACTER SET utf8 COLLATE ...

  5. jmeter笔记(3)--响应结果中文乱码的解决方式

    1.举例 新建HTTP请求访问百度首页,响应结果如下: 2.原因 Jmeter安装目录/bin/jmeter.properties中sampleresult.default.encoding默认为IS ...

  6. python测试报告输出 htmltestrunner 及 中文乱码的解决方式

    下载HTMLTestRunner.py 第三方库 下载地址: python2:http://tungwaiyip.info/software/HTMLTestRunner.html 右键另存为下载HT ...

  7. get方式请求会出现中文乱码。post方式不会。

    get方式请求会出现中文乱码.post方式不会.   如果是要解决get方式中文乱码问题,就需要做一个拦截器,或者在web.xml做一个get请求的配置 来自为知笔记(Wiz)

  8. JSP的学习(4)——中文乱码的解决

    本篇将以JSP页面中可能存在的中文乱码问题进行分析和解决. 中文乱码的问题一直是国人在编程过程中的一大头疼问题,这点上在JSP.Servlet或Tomcat上随处可见.比如我们在写一个Servlet时 ...

  9. 详解get请求和post请求参数中文乱码的解决办法

    首先出现中文乱码的原因是tomcat默认的编码方式是"ISO-8859-1",这种编码方式以单个字节作为一个字符,而汉字是以两个字节表示一个字符的. 一,get请求参数中文乱码的解 ...

随机推荐

  1. ***Java多线程发展简史

    http://blog.jobbole.com/28297/ 本文来自四火的博客(@RayChase),由@_Zhijun 推荐 这篇文章,大部分内容,是周五我做的一个关于如何进行Java多线程编程的 ...

  2. HDU1395+快速幂

    #include<stdio.h> int fast_pow( int a,int b,int mod ){ ; ){ == ){ res = res*a%mod; } a = a*a%m ...

  3. loadrunner_analysis技巧_average 和 90% percent

    “90% Percent Time” 表示90%的事务response time 都维持在某个值附近,不是 average response time * 90%;  “Average Time” 平 ...

  4. c++ 学习笔记 c++ 引用C库注意点:#ifdef __cplusplus 倒底是什么意思?

    时常在cpp的代码之中看到这样的代码: #ifdef __cplusplus extern "C" { #endif //一段代码 #ifdef __cplusplus } #en ...

  5. ALT+数字,可输入汉字或拉丁字母 good

    各种编码查询表:http://bm.kdd.cc/ 输入 ALT + 50385 就出 难 字了,原因是它的十六进制ANSI编码是C4D1=50385 同理: 汉=BABA=47802字=D7D6=5 ...

  6. Android 自定义对话框(Dialog)位置,大小

    代码: package angel.devil; import android.app.Activity; import android.app.Dialog; import android.os.B ...

  7. restful理解

    越来越多的人开始意识到,网站即软件,而且是一种新型的软件. 这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency).高 ...

  8. html5 动画精灵

    <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...

  9. Spring AOP实现方式三之自动扫描注入【附源码】

    注解AOP实现  这里唯一不同的就是application 里面 不需要配置每个bean都需要配置了,直接自动扫描 注册,主要知识点是怎么通过配置文件得到bean, 注意类前面的@注解. 源码结构: ...

  10. 手势识别官方教程(6)识别拖拽手势用GestureDetector.SimpleOnGestureListener和onTouchEvent

    三种现实drag方式 1,在3.0以后可以直接用 View.OnDragListener (在onTouchEvent中调用某个view的startDrag()) 2,onTouchEvent()  ...