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程序的执行原理
Apr 11 Python
Python2实现的图片文本识别功能详解
Jul 11 Python
python numpy实现文件存取的示例代码
May 26 Python
Django Rest framework解析器和渲染器详解
Jul 25 Python
seek引发的python文件读写的问题及解决
Jul 26 Python
Django 大文件下载实现过程解析
Aug 01 Python
Django单元测试工具test client使用详解
Aug 02 Python
Python 70行代码实现简单算式计算器解析
Aug 30 Python
Python: 传递列表副本方式
Dec 19 Python
python实现贪吃蛇双人大战
Apr 18 Python
Python中的全局变量如何理解
Jun 04 Python
python 基于opencv 实现一个鼠标绘图小程序
Dec 11 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
BBS(php & mysql)完整版(五)
2006/10/09 PHP
PHP调用存储过程返回值不一致问题的解决方法分析
2016/04/26 PHP
PHP查询附近的人及其距离的实现方法
2016/05/11 PHP
微信公众号开发之语音消息识别php代码
2016/08/08 PHP
PHP微商城开源代码实例
2019/03/27 PHP
解密效果
2006/06/23 Javascript
JS基于cookie实现来宾统计记录访客信息的方法
2015/08/04 Javascript
JS实现的仿东京商城菜单、仿Win右键菜单及仿淘宝TAB特效合集
2015/09/28 Javascript
关于JS中setTimeout()无法调用带参函数问题的解决方法
2016/06/21 Javascript
js 创建对象 经典模式全面了解
2016/08/16 Javascript
JavaScript lodash常见用法系列小结
2016/08/24 Javascript
js动态生成form 并用ajax方式提交的实现方法
2016/09/09 Javascript
基于JavaScript实现随机颜色输入框
2016/12/10 Javascript
JavaScript数组去重的6个方法
2017/01/21 Javascript
js弹出窗口简单实现代码
2017/03/22 Javascript
webpack构建vue项目的详细教程(配置篇)
2017/07/17 Javascript
探索Vue高阶组件的使用
2018/01/08 Javascript
使用Vue.js和Flask来构建一个单页的App的示例
2018/03/21 Javascript
JS+CSS实现动态时钟
2021/02/19 Javascript
Python内置的字符串处理函数整理
2013/01/29 Python
python使用pil库实现图片合成实例代码
2018/01/20 Python
python 通过字符串调用对象属性或方法的实例讲解
2018/04/21 Python
python占位符输入方式实例
2019/05/27 Python
Pytorch中accuracy和loss的计算知识点总结
2019/09/10 Python
Python中常用的高阶函数实例详解
2020/02/21 Python
windows下Pycharm安装opencv的多种方法
2020/03/05 Python
Pycharm激活方法及详细教程(详细且实用)
2020/05/12 Python
python exit出错原因整理
2020/08/31 Python
职代会闭幕词
2015/01/28 职场文书
教师个人师德工作总结2015
2015/05/12 职场文书
火烧圆明园观后感
2015/06/03 职场文书
Pytorch DataLoader shuffle验证方式
2021/06/02 Python
用JS创建一个录屏功能
2021/11/11 Javascript
Go语言实现一个简单的并发聊天室的项目实战
2022/03/18 Golang
德劲DE1105机评
2022/04/05 无线电
zabbix 代理服务器的部署与 zabbix-snmp 监控问题
2022/07/15 Servers