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文件右键找不到IDLE打开项解决办法
Jun 08 Python
python 寻找list中最大元素对应的索引方法
Jun 28 Python
Python引用计数操作示例
Aug 23 Python
python抖音表白程序源代码
Apr 07 Python
详解Pandas之容易让人混淆的行选择和列选择
Jul 10 Python
python 同时读取多个文件的例子
Jul 16 Python
Atom Python 配置Python3 解释器的方法
Aug 28 Python
使用python绘制温度变化雷达图
Oct 18 Python
wxPython实现文本框基础组件
Nov 18 Python
np.newaxis 实现为 numpy.ndarray(多维数组)增加一个轴
Nov 30 Python
pandas按照列的值排序(某一列或者多列)
Dec 13 Python
python Tkinter的简单入门教程
Apr 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
玩转虚拟域名◎+ .
2006/10/09 PHP
PHP中exec与system用法区别分析
2014/09/22 PHP
php自动载入类用法实例分析
2016/06/24 PHP
PHP递归获取目录内所有文件的实现方法
2016/11/01 PHP
PHP实现可添加水印与生成缩略图的图片处理工具类
2018/01/16 PHP
Laravel5.5 数据库迁移:创建表与修改表示例
2019/10/23 PHP
JavaScript 动态添加表格行 使用模板、标记
2009/10/24 Javascript
JS面向对象编程 for Cookie
2010/09/19 Javascript
Jquery中获取iframe的代码
2011/01/11 Javascript
简单的两种Extjs formpanel加载数据的方式
2013/11/09 Javascript
JavaScript设计模式之工厂模式和构造器模式
2015/02/11 Javascript
jQuery实现Email邮箱地址自动补全功能代码
2015/11/03 Javascript
javascript加载xml 并解析各节点的值(实现方法)
2016/10/12 Javascript
jQuery 检查某个元素在页面上是否存在实例代码
2016/10/27 Javascript
微信小程序 loading 详解及实例代码
2016/11/09 Javascript
JavaScript使用简单正则表达式的数据验证功能示例
2017/01/13 Javascript
微信小程序实现瀑布流布局与无限加载的方法详解
2017/05/12 Javascript
使用vue-aplayer插件时出现的问题的解决
2018/03/02 Javascript
vue2 全局变量的设置方法
2018/03/09 Javascript
js实现时钟定时器
2020/03/26 Javascript
Windows中安装使用Virtualenv来创建独立Python环境
2016/05/31 Python
python WindowsError的错误代码详解
2017/07/23 Python
Python实现字符串与数组相互转换功能示例
2017/09/22 Python
解决pycharm运行出错,代码正确结果不显示的问题
2018/11/30 Python
Python设计模式之建造者模式实例详解
2019/01/17 Python
python 发送和接收ActiveMQ消息的实例
2019/01/30 Python
python根据时间获取周数代码实例
2019/09/30 Python
centos7中安装python3.6.4的教程
2019/12/11 Python
Django ForeignKey与数据库的FOREIGN KEY约束详解
2020/05/20 Python
浅谈numpy中函数resize与reshape,ravel与flatten的区别
2020/06/18 Python
CSS3田字格列表的样式编写方法
2018/11/22 HTML / CSS
基于HTML5 audio元素播放声音jQuery小插件
2011/05/11 HTML / CSS
美国在线宠物用品商店:Entirely Pets
2017/01/01 全球购物
一套带网友答案的.NET笔试题
2016/12/06 面试题
CAD制图设计师自荐信
2014/01/29 职场文书
写给纪委的违纪检讨书
2015/05/05 职场文书