文档章节

Matplotlib 饼状图中的文字中文乱码问题

Kanonpy
 Kanonpy
发布于 2016/02/19 11:40
字数 492
阅读 2354
收藏 0

今天用matplotlib画饼状图时候遇到中文乱码,一般遇到中文乱码有两种通用的解决方法,一种是修改matplotlibrc,通过修改matplotlibrc中的font.sans-serif添加中文,一种是直接在代码中通过rcParams修改字体,既然遇到乱码当然先用传统方法试试,代码如下:



可以看到虽然title的中文问题解决了,但是饼状图的中文依然显示乱码,下面试试修改matplotlibrc文件

遇到中文可以看出乱码问题,然后尝试了修改matplotlibrc文件,但是问题却依然没得到解决:

Lib\site-packages\matplotlib\mpl-data目录,打开matplotlibrc文件,删除font.familyfont.sans-serif两行前的#,并在font.sans-serif后添加微软雅黑字体(Microsoft YaHei),但是发现原来还是不行,究竟是什么问题呢?

______________________________________________________


后来发现ax.pie()函数返回值里面有text实例如下图:

ax.pie(np.array(game_app["download_times"])[:5],labels=game_app["name"][:5],autopct='%1.1f%%')
×
Out[73]:
([<matplotlib.patches.Wedge at 0xd1b7450>,
  <matplotlib.patches.Wedge at 0xd4686f0>,
  <matplotlib.patches.Wedge at 0xd5757b0>,
  <matplotlib.patches.Wedge at 0xd58b4f0>,
  <matplotlib.patches.Wedge at 0xd58b950>],
 [<matplotlib.text.Text at 0xd531710>,
  <matplotlib.text.Text at 0xd575250>,
  <matplotlib.text.Text at 0xd575b90>,
  <matplotlib.text.Text at 0xd58b3d0>,
  <matplotlib.text.Text at 0xd58bd30>],
 [<matplotlib.text.Text at 0xd4689d0>,
  <matplotlib.text.Text at 0xd575450>,
  <matplotlib.text.Text at 0xd575f70>,
  <matplotlib.text.Text at 0xd58b690>,
  <matplotlib.text.Text at 0xd58bfb0>])

查看了一下text实例的fontname名称,竟然不是Microsoft YaHei还是Bitstream Vera Sans,原来问题在这,图形中的text实例并没有受到影响:

a = ax.pie(np.array(game_app["download_times"])[:5],labels=game_app["name"][:5],autopct='%1.1f%%')
a[1][1].get_fontname()
Out[46]:
'Bitstream Vera Sans'

那么只能直接改text实例了,

pie = ax.pie(np.array(game_app["download_times"])[:5],labels=game_app["name"][:5],autopct='%1.1f%%')
#图形中的文字无法通过rcParams设置
for font in pie[1]:
    font.set_fontproperties(mpl.font_manager.FontProperties(
            fname='L:/Python27/Lib/site-packages/matplotlib/mpl-data/fonts/ttf/simfang.ttf'))

修改后饼状图图形中的中文乱码可以解决了:

© 著作权归作者所有

共有 人打赏支持
Kanonpy
粉丝 13
博文 29
码字总数 22805
作品 0
广州
程序员
私信 提问
DotNetNuke 中文乱码问题的解决

在制作DNN皮肤和开发模块时会遇上中文乱码的问题,如下是解决方法。 皮肤乱码 在制做一个DotNetNuke Skin的时候, 皮肤上面使用了中文字,可放上去后皮肤的中文字却变成乱码了。 解决方法是:...

m2land
2006/12/07
0
0
解密大数据课程作业-直方图

Paste_Image.png Paste_Image.png 从直方图上看,数据集2的分布相对均匀一些,但是从数据看,数据集2的标准差更大。用代码一步一步可以把图做出来,但是如何解读才是真正的数据分析能力,对我...

游遍星辰99
2017/03/12
0
0
Python-Passing a matplotlib figure to HTML (flask)

最近因工作需要,需要将决策树生成的图在html上展示,给专业的人员用来做修改。有几个坑,现在记录下。 再尝试了R的rpart,scikit-learn的decision tree之后,发现效果都跟业务要求有差距,因...

JxKing
2016/04/16
0
0
MySQL字符集 GBK、GB2312、UTF8区别 解决 MYSQL中文乱码问题

MySQL中涉及的几个字符集 character-set-server/default-character-set:服务器字符集,默认情况下所采用的。 character-set-database:数据库字符集。 character-set-table:数据库表字符集...

酸奶喝不完
2012/08/23
0
2
idea avtiviti 插件中文乱码

idea avtiviti 插件中文乱码 idea 安转activiti插件后,编辑流程图发现保存后中文乱码,并且idea的字符集(Settings—>Editor—>File Encodings)已经设置为UTF-8,流程图中中文仍然是乱码,...

楠木楠
2016/12/27
497
0

没有更多内容

加载失败,请刷新页面

加载更多

Libusb交叉编译和移植

  Libusb交叉编译和移植      某项目内核需要支持USB的相关操作,所以考虑移植Libusb库      1、到官网下载最新的libusb源码(1.0.22)      2、解压源码      3、进入解压...

SEOwhywhy
7分钟前
1
0
阿里云HBase全新发布X-Pack NoSQL数据库再上新台阶

一、八年双十一,造就国内最大最专业HBase技术团队 阿里巴巴集团早在2010开始研究并把HBase投入生产环境使用,从最初的淘宝历史交易记录,到蚂蚁安全风控数据存储。持续8年的投入,历经8年双...

阿里云云栖社区
10分钟前
1
0
【58沈剑 架构师之路】数据库索引,到底是什么做的?

问题1. 数据库为什么要设计索引? 图书馆存了1000W本图书,要从中找到《架构师之路》,一本本查,要查到什么时候去? 于是,图书管理员设计了一套规则: (1)一楼放历史类,二楼放文学类,三楼...

张锦飞
10分钟前
1
0
android webpage err_unknown_url_scheme

搞一个 Android 的webview demo 来访问网页, 结果 模拟器就报错了: webpage err_unknown_url_scheme 于是去百度了 一下。发现挺多解决方案的,都拿来试试。居然有几种方式都可以。 1, 参考...

之渊
13分钟前
1
0
JVM总结

区域简介 JVM运行时区域有些随着虚拟机进程的启动而存在,有些依赖于用户线程的启动和结束而建立和销毁,大致分为以下几类:方法区,虚拟机栈,本地方法栈,堆,程序计数器,概念图如下(源于...

瑞查德-Jack
14分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部