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选择排序算法的实现代码
Nov 21 Python
Python注释详解
Jun 01 Python
Python实现的用户登录系统功能示例
Feb 05 Python
Python基于最小二乘法实现曲线拟合示例
Jun 14 Python
python实现textrank关键词提取
Jun 22 Python
python高效过滤出文件夹下指定文件名结尾的文件实例
Oct 21 Python
使用Python生成200个激活码的实现方法
Nov 22 Python
浅谈python量化 双均线策略(金叉死叉)
Jun 03 Python
python实现mean-shift聚类算法
Jun 10 Python
Python faker生成器生成虚拟数据代码实例
Jul 20 Python
PyCharm2020.1.1与Python3.7.7的安装教程图文详解
Aug 07 Python
python 实现超级玛丽游戏
Nov 25 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
Zend的AutoLoad机制介绍
2012/09/27 PHP
php的数组与字符串的转换函数整理汇总
2013/07/18 PHP
JQuery对checkbox操作 (循环获取)
2011/05/20 Javascript
js调用activeX获取u盘序列号的代码
2011/11/21 Javascript
jQuery父级以及同级元素查找介绍
2013/09/04 Javascript
jQuery Validate 验证,校验规则写在控件中的具体实例
2014/02/27 Javascript
探讨AngularJs中ui.route的简单应用
2016/11/16 Javascript
React服务端渲染(总结)
2017/07/01 Javascript
XMLHttpRequest对象_Ajax异步请求重点(推荐)
2017/09/28 Javascript
基于Vue制作组织架构树组件
2017/12/06 Javascript
JS实现自定义弹窗功能
2018/08/08 Javascript
React Component存在的几种形式详解
2018/11/06 Javascript
小程序云开发教程如何使用云函数实现点赞功能
2019/05/18 Javascript
jquery插件开发模式实例详解
2019/07/20 jQuery
javascript头像上传代码实例
2019/09/28 Javascript
Python 变量类型及命名规则介绍
2013/06/08 Python
书单|人生苦短,你还不用python!
2017/12/29 Python
Python在for循环中更改list值的方法【推荐】
2018/08/17 Python
浅述python中深浅拷贝原理
2018/09/18 Python
在Python 字典中一键对应多个值的实例
2019/02/03 Python
Python动态赋值的陷阱知识点总结
2019/03/17 Python
python从list列表中选出一个数和其对应的坐标方法
2019/07/20 Python
Python爬虫 urllib2的使用方法详解
2019/09/23 Python
详解python with 上下文管理器
2020/09/02 Python
Python使用grequests并发发送请求的示例
2020/11/05 Python
全球领先的中国制造商品在线批发平台:DHgate
2020/01/28 全球购物
JAVA中运算符的分类及举例
2015/09/12 面试题
《绿色蝈蝈》教学反思
2014/03/02 职场文书
3的组成教学反思
2014/04/30 职场文书
质量月活动总结
2014/08/26 职场文书
劳动纠纷调解协议书格式
2014/11/30 职场文书
共青团员自我评价
2015/03/10 职场文书
联欢会开场白
2015/06/01 职场文书
大学生见习总结报告
2015/06/24 职场文书
退伍军人感言
2015/08/01 职场文书
Python实现双向链表基本操作
2022/05/25 Python