Matplotlib 绘制饼图解决文字重叠的方法


Posted in Python onJuly 24, 2020

在使用Matplotlib 绘制饼图的时候有些时候一些数据的比列太小在饼图呈现的效果不明显 很容易被覆盖,为了解决这个问题以下就是我个人的心得。

【未解决之前呈现的效果】

Matplotlib 绘制饼图解决文字重叠的方法

可以看到这个饼状图其他和硕士这2个部分占比很小而且比例相互覆盖,这让人看起来不舒服,所以针对这个问题我们可以调整下字体大小以及布局大小。

1.设置字体的大小

patches,l_text,p_text=plt.pie(values, spaces, labels, colors, '%.1f%%', shadow=True, radius=1, startangle=90)
# l_text是饼图对着文字大小,p_text是饼图内文字大小
for t in p_text:
  t.set_size(5)
 
for t in l_text:
  t.set_size(6)

2.防止标签重叠,可以将窗口设置的大一些

# 防止标签重叠,可以将窗口设置的大一些
plt.figure(figsize=(20, 6.5))

【源代码】

import matplotlib.pyplot as plt
 
# 解决乱码
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
 
 
# 值列表
values = [0.2515,0.3724,0.3336,0.0368,0.0057]
 
# 扇形之间的间距:设置为0就是各部分挨在一起,如果设置不为0就是突显该部分
spaces = [0, 0, 0, 0, 0]
 
# 标签列表
labels = ['中专','大专','本科','硕士','其他']
 
# 颜色列表
colors = ['dodgerblue', 'orangered', 'limegreen', 'cyan', 'gold']
 
# 防止标签重叠,可以将窗口设置的大一些
plt.figure(figsize=(20, 6.5))
 
# 将横、纵坐标轴标准化处理,保证饼图是一个正圆,否则为椭圆
plt.axis('equal')
 
# 绘图
patches,l_text,p_text=plt.pie(values, spaces, labels, colors, '%.1f%%', shadow=True, radius=1, startangle=90)
 
# 给图像加上图例
plt.legend(loc='upper left')
 
# 设置饼图内文字大小
for t in p_text:
  t.set_size(6)
 
for t in l_text:
  t.set_size(9)
 
# 显示
plt.show()

【新效果】

Matplotlib 绘制饼图解决文字重叠的方法

到此这篇关于Matplotlib 绘制饼图解决文字重叠的方法的文章就介绍到这了,更多相关Matplotlib 饼图文字重叠内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python中实现结构相似的函数调用方法
Mar 10 Python
python实现简单socket程序在两台电脑之间传输消息的方法
Mar 13 Python
python使用os.listdir和os.walk获得文件的路径的方法
Dec 16 Python
Python爬豆瓣电影实例
Feb 23 Python
Django用户认证系统 组与权限解析
Aug 02 Python
Python 读取xml数据,cv2裁剪图片实例
Mar 10 Python
Django CBV模型源码运行流程详解
Aug 17 Python
python输入中文的实例方法
Sep 14 Python
手把手教你配置JupyterLab 环境的实现
Feb 02 Python
python+opencv实现车道线检测
Feb 19 Python
python百行代码实现汉服圈图片爬取
Nov 23 Python
Python实现视频中添加音频工具详解
Dec 06 Python
Python3.7安装pyaudio教程解析
Jul 24 #Python
python调用私有属性的方法总结
Jul 24 #Python
python中取绝对值简单方法总结
Jul 24 #Python
python代码能做成软件吗
Jul 24 #Python
深入了解Python 变量作用域
Jul 24 #Python
详解Python IO编程
Jul 24 #Python
Python如何实现大型数组运算(使用NumPy)
Jul 24 #Python
You might like
PHP时间戳与日期之间转换的实例介绍
2013/04/19 PHP
PHP 文件编程综合案例-文件上传的实现
2013/07/03 PHP
PHP多个文件上传到服务器实例
2014/10/29 PHP
php的闭包(Closure)匿名函数初探
2016/02/14 PHP
PHP快速排序quicksort实例详解
2016/09/28 PHP
PHPUnit + Laravel单元测试常用技能
2019/11/06 PHP
Javascript 去除数组的重复元素
2010/05/04 Javascript
Js基础学习资料
2010/11/23 Javascript
JavaScript异步回调的Promise模式封装实例
2014/06/07 Javascript
javascript 自定义回调函数示例代码
2014/09/26 Javascript
从数据库读取数据后将其输出成html标签的三种方法
2014/10/13 Javascript
jQuery结合CSS制作动态的下拉菜单
2015/10/27 Javascript
jQuery EasyUI 入门必看
2016/06/03 Javascript
jQuery Easy UI中根据第一个下拉框选中的值设置第二个下拉框是否可以编辑
2016/11/29 Javascript
javascript中的面向对象
2017/03/30 Javascript
JavaScript实现的超简单计算器功能示例
2017/12/23 Javascript
详解Eslint 配置及规则说明
2018/09/10 Javascript
javascript实现文本框标签验证的实例代码
2018/10/14 Javascript
基于vue-draggable 实现三级拖动排序效果
2020/01/10 Javascript
ES6中Set和Map用法实例详解
2020/03/02 Javascript
基于ajax实现上传图片代码示例解析
2020/12/03 Javascript
在Python中编写数据库模块的教程
2015/04/29 Python
padas 生成excel 增加sheet表的实例
2018/12/11 Python
Python 存储字符串时节省空间的方法
2019/04/23 Python
用Python爬取QQ音乐评论并制成词云图的实例
2019/08/24 Python
Pytorch之parameters的使用
2019/12/31 Python
深入浅析Python 命令行模块 Click
2020/03/11 Python
python使用hdfs3模块对hdfs进行操作详解
2020/06/06 Python
Python爬虫获取op.gg英雄联盟英雄对位胜率的源码
2021/01/29 Python
HTML5 video进入全屏和退出全屏的实现方法
2020/07/28 HTML / CSS
世界上最悠久的自行车制造商:Ribble Cycles
2017/03/18 全球购物
.NET初级开发工程师面试题(包括Javascript)
2012/08/22 面试题
企业管理培训感言
2014/01/27 职场文书
2014年英语教师工作总结
2014/12/03 职场文书
护士医德考评自我评价
2015/03/03 职场文书
解决Python字典查找报Keyerror的问题
2021/05/26 Python