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使用正则搜索字符串或文件中的浮点数代码实例
Jul 11 Python
Python内置模块logging用法实例分析
Feb 12 Python
Python3 实现随机生成一组不重复数并按行写入文件
Apr 09 Python
PyCharm+PySpark远程调试的环境配置的方法
Nov 29 Python
Python3+PyInstall+Sciter解决报错缺少dll、html等文件问题
Jul 15 Python
python3 写一个WAV音频文件播放器的代码
Sep 27 Python
Pyecharts 动态地图 geo()和map()的安装与用法详解
Mar 25 Python
keras中模型训练class_weight,sample_weight区别说明
May 23 Python
详解tensorflow2.x版本无法调用gpu的一种解决方法
May 25 Python
Django通过json格式收集主机信息
May 29 Python
Python尾递归优化实现代码及原理详解
Oct 09 Python
python快速安装OpenCV的步骤记录
Feb 22 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 imagegrabscreen和imagegrabwindow(截取网站缩略图)的实例代码
2013/11/07 PHP
详解PHP字符串替换str_replace()函数四种用法
2017/10/13 PHP
PHP日期和时间函数的使用示例详解
2020/08/06 PHP
JavaScript 学习笔记(十三)Dom创建表格
2010/01/21 Javascript
js Event对象的5种坐标
2011/09/12 Javascript
jQuery中inArray方法注意事项分析
2016/01/25 Javascript
jQuery选择器基础入门教程
2016/05/10 Javascript
Angular企业级开发——MVC之控制器详解
2017/02/20 Javascript
js实现一个简单的数字时钟效果
2017/03/29 Javascript
React Native使用fetch实现图片上传的示例代码
2018/03/07 Javascript
JS引用传递与值传递的区别与用法分析
2018/06/01 Javascript
js实现多图和单图上传显示
2019/12/18 Javascript
JS实现判断移动端PC端功能
2020/02/21 Javascript
JS浏览器BOM常见操作实例详解
2020/04/27 Javascript
js实现页面导航层级指示效果
2020/08/25 Javascript
解决vue-pdf查看pdf文件及打印乱码的问题
2020/11/04 Javascript
[01:06:19]DOTA2-DPC中国联赛定级赛 LBZS vs SAG BO3第二场 1月8日
2021/03/11 DOTA
在Python中操作字典之update()方法的使用
2015/05/22 Python
Python使用pylab库实现画线功能的方法详解
2017/06/08 Python
删除DataFrame中值全为NaN或者包含有NaN的列或行方法
2018/11/06 Python
浅谈matplotlib默认字体设置探索
2021/02/03 Python
IE10 Error.stack 让脚本调试更加方便快捷
2013/04/22 HTML / CSS
Html5 audio标签样式的修改
2016/01/28 HTML / CSS
HTML5新增加标签和功能概述
2016/09/05 HTML / CSS
英国性感内衣和睡衣品牌:Bluebella
2018/01/26 全球购物
如何使用PHP session
2015/04/21 面试题
Servlet如何得到客户端机器的信息
2014/10/17 面试题
有模特经验的简历自我评价
2013/09/19 职场文书
迎八一活动主题
2014/01/31 职场文书
家长学校工作方案
2014/05/07 职场文书
2015元旦联欢晚会结束语
2014/12/14 职场文书
我们的节日元宵节活动总结
2015/02/06 职场文书
2015年党员发展工作总结
2015/05/13 职场文书
公司车辆维修管理制度
2015/08/05 职场文书
python opencv通过4坐标剪裁图片
2021/06/05 Python
mysql 8.0.27 绿色解压版安装教程及配置方法
2022/04/20 MySQL