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 相关文章推荐
python3实现公众号每日定时发送日报和图片
Feb 24 Python
Python文本统计功能之西游记用字统计操作示例
May 07 Python
python字符串与url编码的转换实例
May 10 Python
selenium+python自动化测试之使用webdriver操作浏览器的方法
Jan 23 Python
Python初学者常见错误详解
Jul 02 Python
django获取from表单multiple-select的value和id的方法
Jul 19 Python
python主线程与子线程的结束顺序实例解析
Dec 17 Python
tensorflow 限制显存大小的实现
Feb 03 Python
Python单元测试及unittest框架用法实例解析
Jul 09 Python
Python爬虫小例子——爬取51job发布的工作职位
Jul 10 Python
Python 如何实现访问者模式
Jul 28 Python
Python面向对象实现方法总结
Aug 12 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实现的下载css文件中的图片的代码
2010/02/08 PHP
PHP生成UTF8文件的方法
2010/05/15 PHP
PHP学习之正则表达式
2011/04/17 PHP
php 数组的一个悲剧?
2011/05/11 PHP
PHP curl 抓取AJAX异步内容示例
2014/09/09 PHP
PHP中大于2038年时间戳的问题处理方案
2015/03/03 PHP
CodeIgniter中使用Smarty3基本配置
2015/06/29 PHP
双冒号 ::在PHP中的使用情况
2015/11/05 PHP
ThinkPHP框架安全实现分析
2016/03/14 PHP
php设计模式之工厂方法模式分析【星际争霸游戏案例】
2020/01/23 PHP
Js切换功能的简单方法
2010/11/23 Javascript
JavaScript(JS) 压缩 / 混淆 / 格式化 批处理工具
2010/12/10 Javascript
基于jquery的无限级联下拉框js插件
2011/10/29 Javascript
验证手机号码的JS方法分享
2013/09/10 Javascript
js判断IE浏览器版本过低示例代码
2013/11/22 Javascript
thinkphp中常用的系统常量和系统变量
2014/03/05 Javascript
js给table赋值的实例代码
2016/10/13 Javascript
Bootstrap下拉菜单样式
2017/02/07 Javascript
基于openlayers4实现点的扩散效果
2020/08/17 Javascript
js+canvas实现滑动拼图验证码功能
2018/03/26 Javascript
vue动态改变背景图片demo分享
2018/09/13 Javascript
微信小程序进入广告实现代码实例
2019/09/19 Javascript
javascript 关于赋值、浅拷贝、深拷贝的个人理解
2019/11/01 Javascript
[49:18]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 OG vs TNC
2018/04/01 DOTA
python基础练习之几个简单的游戏
2017/11/10 Python
Dlib+OpenCV深度学习人脸识别的方法示例
2019/05/14 Python
使用WingPro 7 设置Python路径的方法
2019/07/24 Python
django 配置阿里云OSS存储media文件的例子
2019/08/20 Python
PyCharm2020最新激活码+激活码补丁(亲测最新版PyCharm2020.2激活成功)
2020/11/25 Python
C++面试题:关于链表和指针
2013/06/05 面试题
三字经教学反思
2014/04/26 职场文书
迎国庆横幅标语
2014/10/08 职场文书
统计员岗位职责
2015/02/11 职场文书
网站文案策划岗位职责
2015/04/14 职场文书
JavaWeb实现显示mysql数据库数据
2022/03/19 Java/Android
MySQL串行化隔离级别(间隙锁实现)
2022/06/16 MySQL