Matplot中文乱码完美解决方案

一、修改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

时间: 2024-11-10 13:00:10

Matplot中文乱码完美解决方案的相关文章

EPP3 php项目文件打开中文乱码 完美解决方案

问题描述:运行调试都没问题,但唯一的就是在EPP3中打开的源文件里中文是乱码 解决方案: 这里面有两处需要进行设置: 1.对项目属性进行设置 2.在窗口--首选项中,对工作空间进行设置 这两处都设置好以后,重启项目就可以看到原来的中文乱码,变成了正常中文字符了

Python Matplot中文显示完美解决方案

原因与现象 Matplot是一个功能强大的Python图表绘制库,很遗憾目前版本自带的字体库中并不支持中文字体.所以如果在绘制内容中需要显示中文,那么就会显示为方格字符. 解决办法 有一个较为完美的解决方案,通过扫描Matplot自带字体库以及系统字体库,寻找能够支持的中文字体,如果能够找到的话,就设置第一个为Matplot的字体熟悉. 代码如下: import matplotlib.pyplot as plt from matplotlib.font_manager import FontMa

Matplot中文乱码完美解决方式

一.改动matplotlibrc文件 (永久解决方式) 1. 定位matplotlibrc文件 该文件位于[python_install_dir]\Lib\site-packages\matplotlib\mpl-data文件夹下. 2. 改动matplotlibrc文件内容. matplotlibrc文件部分内容例如以下: font.family : sans-serif #默认情况下.该字段为关闭状态.去掉凝视就可以. font.sans-serif : Microsoft YaHei ,

Eclipse工程,中文乱码问题解决方案

Eclipse工程,中文乱码问题解决方案 将工程的属性设置为GBK: 如果一个工程家里的时候是按照GBK,而Eclipse默认的编码是UTF-8,所以如果导入的工程是GBK,则可以将工程更改为UTF-8试试: 如果还是不行的话,暂时无法解决,百度无数,基本上都是说编码问题,只是我自己也碰到过更改编码格式为GBK/UTF-8依然解决不了问题的情况.

JSP中文乱码问题解决方案

1.项目工程编码统一采用UTF-8编码 2.JSP页面采用UTF-8编码 <%@ page language="java" import="java.util.*,entity.Student" pageEncoding="UTF-8"%> 3.设置request内置对象采用utf-8编码,防止表单提交产生信息乱码(POST方式提交) request.setCharacterEncoding("utf-8"); 4

在jQuery中Ajax的Post提交中文乱码的解决方案(转)

引言: 在jQuery的Ajax POST请求中,进行请求,其中的中文在后台,显示为乱码,该如何解决呢? 问题的引入: var regid = $('#oregion').combobox('getValue'); //var sname = $('#sname').val(); var sname = encodeURI($('#sname').val(),"UTF-8"); if(regid!=""&&regid!='undefined'){ $

中文乱码问题解决方案

UTF-8编码与GBK,GB2312编码区别 UTF-8:Unicode TransformationFormat-8bit,允许含BOM,但通常不含BOM.是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用24为(三个字节)来编码.UTF-8包含全世界所有国家需要用到的字符,是国际编码,通用性强.UTF-8编码的文字可以在各国支持UTF8字符集的浏览器上显示.如,如果是UTF8编码,则在外国人的英文IE上也能显示中文,他们无需下载IE的中文语言支持包. GBK是国家

Spring MVC 结合Velocity视图出现中文乱码的解决方案

编码问题一直是个很令人头疼的事,这几天搭了一个Spring MVC+VTL的web框架,发现中文乱码了,这里记录一种解决乱码的方案. 开发环境为eclipse,首先,检查Window->preferences->workplace->Text File Encoding,设置为GBK .vm文件中加入编码约束,举例如下 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Typ

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

最近写一个小项目的时候:在调用 calendar.js  的时候出现中文乱码! 如图所示: 原因在于: 我的jsp 页面,指定的是 UTF-8 编码,然而,调用的 calendar.js 的编码确实 GBK 编码,所以出现上面的结果. 解决方案: 再引入 JS文件的时候,指定 编码格式: 例如: <script type="text/javascript" src="<%=path %>/admin/images/calendar.js"  cha