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中的round()方法
May 15 Python
Python输出9*9乘法表的方法
May 25 Python
Python使用email模块对邮件进行编码和解码的实例教程
Jul 01 Python
Python 搭建Web站点之Web服务器网关接口
Nov 06 Python
apache部署python程序出现503错误的解决方法
Jul 24 Python
分分钟入门python语言
Mar 20 Python
python中in在list和dict中查找效率的对比分析
May 04 Python
Python计算开方、立方、圆周率,精确到小数点后任意位的方法
Jul 17 Python
Python3 实现文件批量重命名示例代码
Jun 03 Python
Python处理mysql特殊字符的问题
Mar 02 Python
python实现黄金分割法的示例代码
Apr 28 Python
python使用glob检索文件的操作
May 20 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 无法载入mysql扩展
2010/03/12 PHP
thinkphp四种url访问方式详解
2014/11/28 PHP
Yii使用技巧大汇总
2015/12/29 PHP
twig里使用js变量的方法
2016/02/05 PHP
PHP实现将上传图片自动缩放到指定分辨率,并保持清晰度封装类示例
2019/06/17 PHP
Laravel + Elasticsearch 实现中文搜索的方法
2020/02/02 PHP
PHP使用openssl扩展实现加解密方法示例
2020/02/20 PHP
php设计模式之备忘模式分析【星际争霸游戏案例】
2020/03/24 PHP
推荐11款jQuery开发的复选框和单选框美化插件
2011/08/02 Javascript
iframe窗口高度自适应的实现方法
2014/01/08 Javascript
JavaScript参数个数可变的函数举例说明
2014/10/10 Javascript
JS+CSS实现弹出全屏灰黑色透明遮罩效果的方法
2014/12/20 Javascript
javascript实现table选中的行以指定颜色高亮显示的方法
2015/05/13 Javascript
jQuery技巧之让任何组件都支持类似DOM的事件管理
2016/04/05 Javascript
JavaScript编程中实现对象封装特性的实例讲解
2016/06/24 Javascript
JS实现的幻灯片切换显示效果
2016/09/07 Javascript
jquery延迟对象解析
2016/10/26 Javascript
js实现导航栏中英文切换效果
2017/01/16 Javascript
layui之数据表格--与后台交互获取数据的方法
2019/09/29 Javascript
Vue双向绑定实现原理与方法详解
2020/05/07 Javascript
JS中的继承操作实例总结
2020/06/06 Javascript
vue+element_ui上传文件,并传递额外参数操作
2020/12/05 Vue.js
Python对象体系深入分析
2014/10/28 Python
数据挖掘之Apriori算法详解和Python实现代码分享
2014/11/07 Python
使用Python操作MySQL的一些基本方法
2015/08/16 Python
对python numpy数组中冒号的使用方法详解
2018/04/17 Python
python socket网络编程之粘包问题详解
2018/04/28 Python
详解Python利用random生成一个列表内的随机数
2019/08/21 Python
新年福利来一波之Python轻松集齐五福(demo)
2020/01/20 Python
详解CSS3中强大的filter(滤镜)属性
2017/06/29 HTML / CSS
Emma Bridgewater官网:英国餐具制造商
2019/11/24 全球购物
出国考察邀请函
2014/01/21 职场文书
呼兰河传读书笔记
2015/06/30 职场文书
小学语文继续教育研修日志
2015/11/13 职场文书
golang gopm get -g -v 无法获取第三方库的解决方案
2021/05/05 Golang
《废话连篇——致新手》——chinapizza
2022/04/05 无线电