文档章节

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

Kanonpy
 Kanonpy
发布于 2016/02/19 11:40
字数 492
阅读 3.3K
收藏 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
粉丝 16
博文 48
码字总数 52857
作品 0
广州
程序员
私信 提问
加载中

评论(0)

matplotlib解决中文乱码

Windows下 Linux下 由于Matplotlib只支持ttf字体,Linux的中文字体都为ttc格式,所以需要安装一个中文ttf字体,所以只要下载一个中文ttf格式的字体放在usr/share/fonts下,然后将配置文件修改...

王诗翔
2019/03/13
0
0
Python Matplotlib 中文显示参数设置

最近在学习python著名的绘图包matplotlib时发现,有时候图例等设置无法正常显示中文,于是就想把这个问题解决了。 PS:本文仅针对Windows,其他平台仅供参考。 原因 大致就是matplotlib库中没...

osc_gtphseny
2019/03/03
6
0
python3下Matplotlib中文显示乱码的问题

python3下Matplotlib中文显示乱码的问题 使用matplotlib绘图时,想要显示中文总是显示不了,解决办法如下,亲测好用: 1 linux系统下 1.1 使用如下命令找到中文字体库: fc-list :lang=zh #...

ML_BOY
03/31
0
0
matplotlib处理数据可是化的时候出现中文显示异常,为[][]的解决方法

1、在使用matplotlib处理数据实现可是化操作的时候,处于语言习惯,经常会使用中文做图表备注,而中文显示会出现异常,如下图: 中文显示异常 那如何解决呢,实际上我们只需要在代码中添加两...

osc_57loaj8m
2018/12/20
4
0
Python:matplotlib 中文乱码的解决方案

最近手头有公司的数据资源,正好拿来练习了 matplotlib 的画图,期间碰到一个坑,就是中文在图表中显示的是方框。在查询网上各种资料并实践后,我分享一下我试验成功的解决方案。 本文针对 ...

osc_6ew996ka
2019/05/15
4
0

没有更多内容

加载失败,请刷新页面

加载更多

webstorm ts学习环境

直接运行插件 ts相关依赖 npm i typescript -g 生成配置文件 tsc --init tsconfig配置 ts设为es6,es5后面使用打包工具生成

阿豪boy
21分钟前
14
0
诺禾,甲骨文数据库怎么样了?

时代在抛弃一个人时,真的是连声“再见”都不说! 甲骨文怎么也算是一代IT巨头了,当年仅次于微软的全球第二大软件系统公司,市值将近2000亿美元!自打30年前进入中国,那叫一个横行霸道!一...

诺禾
32分钟前
19
0
怎么批量压缩PDF文档?迅捷PDF转换器帮你解决难题!

怎么批量压缩PDF文档?电脑用久了,除了经常见到各类软件突如其来的终止通知,还有电脑面对各种文档的“有心无力。”面对一份超大文件,在大家思考如何看完之前,要先考虑自己的电脑能不能打...

赛利亚大姐大
43分钟前
19
0
软件测试简历写成这样,还怕HR不招你?

简历到底有多重要? 俗话说:“简历就是你能否进入一家公司的敲门砖”。面试官只有看到一份有质量的简历才会给你一个面试的机会。 很多人都会有这样的问题,为什么我投了那么多简历,都没有接...

爱码小哥
54分钟前
14
0
C语言探索之旅 | 第二部分第二课:进击的指针,C语言的王牌!

>作者 谢恩铭,公众号「程序员联盟」(微信号:coderhub)。 转载请注明出处。 原文:https://www.jianshu.com/p/e5e685b67501 >《C语言探索之旅》全系列 内容简介 前言 棘手的问题 内存,地...

程序员联盟_
今天
28
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部