Matplotlib 绘制饼图解决文字重叠的方法
作者:流年若逝 发布时间:2023-06-12 22:23:06
标签: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()
【新效果】
来源:https://blog.csdn.net/wyf2017/article/details/107529227


猜你喜欢
- 代码:--库是否存在if exists(select * from master..sysdatabases where name=N
- 写在前面如非特别说明,下文均基于Python3命名空间与作用于跟名字的绑定相关性很大,可以结合另一篇介绍Python名字、对象及其绑定的文章
- 什么是Three.js? 如果你正在读这篇文章,你可能对Three.js有一定的了解,那我们来简单地介绍下Three.js是什么.Three
- 所谓的CSV(逗号分隔值)格式是电子表格和数据库最常用的导入和导出格式。尝试使用CSV格式进行标准化描述之前已经使用了很多年。该csv模块r
- 1.统计我们可以使用date_format()函数格式化时间,然后进行分组操作例如有一个学生表,结构如下idnameageheightgen
- PHP 向它运行的任何脚本提供了大量的预定义常量。魔术常量准确来说并不能算是常量,常量我们在之前的文章中我们介绍到,常量被定义之后是不能被改
- 有这么一个题目,说bt其实也不bt,为了重点突出其中的意图,特意加上了括号:var a = (++Math.P
- 1. 编码问题:遇到了几个字符串转换问题,总结如下:# str to bytes str.encode(s)# bytes to str b
- 实现多表更新,尤其是A表和A的子表B表数据更新,下面是例子有A、B张表,其记录如下:A表c1
- DBCC CHECKIDENT(N'dbo.Orders', RESEED, 0); DBCC CHECKIDENT 语法
- 今天继续学习Django,今天主要掌握两个小点一、如果为Django项目中引入静态文件1、先要在project目录下创建static的目录,
- 前言提示:以下是本篇文章正文内容🧡基本概念🌳树的定义树是n(n≥0)个结点的有限集合,n = 0时,称为空树,这是一种特殊情况在任意一棵非空
- 文件处理流程1.打开文件,得到文件句柄并赋值给一个变量2.通过句柄对文件进行操作3.关闭文件 r模式,默认模式,文件不存在则报错w
- 需提前安装好pyzbar和opencv-python库(博主的电脑安装opencv-python库比较麻烦,但大部分都不会出现该问题)安装方
- 本文讲述了python实现删除文件与目录的方法。分享给大家供大家参考。具体实现方法如下:os.remove(path)删除文件 path.
- SQLite3数据库的介绍和使用(面向业务编程-数据库)SQLite3介绍SQLite是一种用C语言实现的的SQL数据库它的特点有:轻量级、
- 环境:win7+python2.7一直想学习多进程或多线程,但之前只是单纯看一点基础知识还有简单的介绍,无法理解怎么去应用,直到前段时间看了
- abs(number) 返回绝对值。 array(arglist) 创建一个数组。 asc(string) 返回字符串第一个字符的ansi码
- 本文实例讲述了Python随机数用法。分享给大家供大家参考,具体如下:1. random.seed(int)给随机数对象一个种子值,用于产生
- 一、基本使用最近研究了一下 el-upload组件 踩了一些小坑 写起来大家学习一下很经常的一件事情 经常会去直接拷贝 elem