matplotlib可视化之饼图plt.pie()与plt.legend()中bbox_to_anchor参数的理解
- 函数功能:表示离散变量各占比情况
- 调用方法:plt.pie(x, explode=None, labels=None, colors=None, autopct=None, pctdistance=0.6, shadow=False, labeldistance=1.1, startangle=None, radius=None, counterclock=True, wedgeprops=None, textprops=None, center=(0, 0), frame=False)
- 参数说明:
- x:指定绘图的数据
- explode:指定饼图某些部分的突出显示,即呈现爆炸式
- labels:为饼图添加标签说明,类似于图例说明
- colors:指定饼图的填充色
- autopct:自动添加百分比显示,可以采用格式化的方法显示
- pctdistance:设置百分比标签与圆心的距离
- shadow:是否添加饼图的阴影效果
- labeldistance:设置各扇形标签(图例)与圆心的距离;
- startangle:设置饼图的初始摆放角度;
- radius:设置饼图的半径大小;
- counterclock:是否让饼图按逆时针顺序呈现;
- wedgeprops:设置饼图内外边界的属性,如边界线的粗细、颜色等;
- textprops:设置饼图中文本的属性,如字体大小、颜色等;
- center:指定饼图的中心点位置,默认为原点
- frame:是否要显示饼图背后的图框,如果设置为True的话,需要同时控制图框x轴、y轴的范围和饼图的中心位置;
一、绘制简单饼图:
二、环形图:通过参数wedgecolor = {'width':0.5}绘制,自定义数值0.5表示环形图的宽度
三、使用多个参数绘制复杂饼图:
#构造数据:某城镇受教育程度
education = [9823, 5601, 3759, 1400, 450]
labels = ['小学', '初中', '高中', '大学', '研究生及以上']explode = [0,0,0,0.2,0.3] # 用于突出显示特定人群
# 自定义颜色,更多颜色参考颜色网站:https://xkcd.com/color/rgb/
colors=['#9999ff','#ff9999','#7777aa','#2442aa','#dd5555'] # 将横、纵坐标轴标准化处理,保证饼图是一个正圆,否则可能为椭圆
plt.axes(aspect='equal')# 绘制饼图
plt.pie(x = education, # 绘图数据 explode=explode, # 突出显示特定人群labels=labels, # 添加教育水平标签colors=colors, # 设置饼图的自定义填充色autopct='%.1f%%', # 设置百分比的格式,这里保留一位小数pctdistance=0.7, # 设置百分比标签与圆心的距离labeldistance = 1.15, # 设置教育水平标签与圆心的距离startangle = 180, # 设置饼图的初始角度radius = 1.5, # 设置饼图的半径counterclock = False, # 是否逆时针,这里设置为顺时针方向# 设置饼图内外边界的属性值:linewidth表示饼图内外边框线宽度;width表示饼图内外宽度,可控制生成环形图;edgecolor表示边框线的颜色 wedgeprops = {'linewidth': 1.5,'width':0.5, 'edgecolor':'green'}, textprops = {'fontsize':12, 'color':'k'}, # 设置文本标签的属性值center = (0,0), # 设置饼图的原点frame = 0) # 是否显示饼图的图框,这里设置不显示# 显示图形
plt.show()
四、内嵌环形图:用来分析两组具有同类别的数据对比
通过半径radius跟环形图的宽度设置wedgeprops={'width':num}来绘制
例如:分析两种草莓蛋糕的配料占比情况
# 自定义颜色图列表
colormaplist = ["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00"]
elements =['面粉','糖','奶油','草莓','坚果']
weight1 = [40,15,20,10,15]
weight2 = [30,25,15,20,10]plt.pie(weight1,autopct="%3.1f%%", # 百分比显示格式radius=1, # 半径pctdistance=0.85, # 百分比文本距离圆心距离colors=colormaplist, # 颜色textprops=dict(color= "w"), # 文本设置 labels = elements, # 各类别标签wedgeprops=dict(width=0.3, edgecolor = 'w')) # 饼图内外边格式设置plt.pie(weight2,autopct="%3.1f%%",radius=0.7,pctdistance=0.75,colors=colormaplist, #内环形图也使用相同的颜色图,否则会出现同类别的两个数据颜色不对应,不利于观测分析textprops=dict(color= "w"),wedgeprops=dict(width=0.3, edgecolor = 'w'))# 通过legend函数中的loc和bbox_to_anchor参数控制图例位置
# bbox_to_anchor = (x,y,width,height)具体四个参数含义在后面解释
plt.legend( loc = 'center right',bbox_to_anchor = (1.15,0,0.3,1),fontsize = 15)
plt.title('两种草莓蛋糕中配料的比例对比图',fontsize = 17)plt.show()
五、plt.legend()中的bbox_to_anchor = (x,y,width,height)中四个参数的理解
1)bbox_to_anchor 参数用来更好的控制以及调整图例框的位置
2)x,y表示图例框的某个点的坐标位置,而至于那个点是哪里,取决于plt.legend中的参数loc决定,例如:loc = 'center'则x,y表示图例框中心点的位置;
3)width表示将由x,y表示的原图例框的初始位置水平移动多少距离(距离原图例框的宽度);
height表示将由x,y表示的原图例框的初始位置竖直移动多少距离(距离原图例框的高度);
下面用作图来理解:
fig,ax = plt.subplots(2,1,figsize = (8,5))ax[0].scatter(0.5,0.5,label = '(0.5,0.5,0,0)')
ax[0].legend(loc = 'upper right',bbox_to_anchor = (0.5,0.5,0,0),prop={'size':20})
ax[0].set_xlim(0,1)
ax[0].set_ylim(0,1)ax[1].scatter(0.5,0.5,label = '(0.5,0.5,0.5,0.5)')
ax[1].legend(loc = 'upper right',bbox_to_anchor = (0.5,0.5,0.5,0.5),prop={'size':20})
ax[1].set_xlim(0,1)
ax[1].set_ylim(0,1)plt.subplots_adjust(hspace=0.2)
plt.show()
由上图第一个子图可知:图例框的右上顶点('upper right')对应点(0.5,0.5);由第二个子图可知:当width,height设置0.5时,表示新的图例框距离原图例框位置水平跟垂直距离0.5的位置,此时新图例框右上顶点的位置为(1,1)。
matplotlib可视化之饼图plt.pie()与plt.legend()中bbox_to_anchor参数的理解相关推荐
- Matplotlib数据可视化之堆叠图、饼图(plt.stackplot\plt.pie)
堆叠图plt.stackplot() 先来了解一下堆叠图 某网站给堆叠图给出如下解释: 柱形图和面积图可以设置成堆叠的形式,堆叠后同一个分类下的数据不再是水平依次排列而是依次从上到下堆叠在一起. 堆叠 ...
- 数据可视化之matplotlib实战:plt.pie() 绘制内嵌环形饼图
import matplotlib as mpl import matplotlib.pyplot as plt import numpy as np# 防止乱码 mpl.rcParams[" ...
- 数据可视化之matplotlib实战:plt.pie() 绘制分裂式饼图
import matplotlib as mpl import matplotlib.pyplot as plt# 防止乱码 mpl.rcParams["font.sans-serif&qu ...
- matplotlib 饼图 plt.pie()
绘制饼图 import numpy as np import matplotlib as mpl import matplotlib.pyplot as plt #设置字体样式 mpl.rcParam ...
- python绘制饼图的如何设置高度宽度_python 用 matplotlib 饼图参数详解 plt.pie()
defax_set_title(s): ax.set_title(label=f'No.{i+1}\n'+s, #标题的文本内容 loc='right', #标题的位置 family='Arial', ...
- 数据可视化之matplotlib实战:plt.pie()函数 绘制饼状图
import matplotlib as mpl import matplotlib.pyplot as plt import numpy as np# 防止乱码 mpl.rcParams[" ...
- 【Python画图】matplotlib画折线图plt.plot、柱状图plt.bar、堆叠柱状图、饼图plt.pie以及自定义坐标轴的位置、显示汉字
一.折线图 1.常规折线图 import matplotlib.pyplot as plt import matplotlib.font_manager as fm#这样设置以后 可以在图中显示中文 ...
- python使用matplotlib可视化饼图(pie plot)、可视化嵌套的环形饼图(Nested circular pie chart)
python使用matplotlib可视化饼图(pie plot).可视化嵌套的环形饼图(Nested circular pie chart) 目录 python使用matplotlib
- pythonplt制作饼状图_4.5Python数据处理篇之Matplotlib系列(五)---plt.pie()饼状图
目录 [TOC] 前言 饼状图需要导入的是: plt.pie(x, labels= ) (一)简单的饼状图 (1)说明: pyplot.``pie(x, explode=None, labels=No ...
最新文章
- Vue精简版风格指南
- 网络营销外包对于搜索引擎策略性调整网络营销外包专员如何解析
- 使用Windows Live Writer写博客
- ImageMagick 打水印支持透明度设置
- 计算机怎么删除表格,电脑中删除Excel2010表格多余图片的三种方法
- WCF分布式开发步步为赢系列
- 限制使用su命令的用户与使用sudo机制提升权限
- (转)MyBatis框架的学习(六)——MyBatis整合Spring
- python预处理后变量情况描述_【数据预处理】python旅游网站数据清洗实践
- 织梦网站地图html制作,dedecms织梦制作xml网站地图的方法
- Python中格式化操作漂亮打印文件的读取和写入
- Vue 使用 PinyinMatch实现拼音匹配搜索
- word文档通配符换行_Word应用分隔符的使用
- dbf解析_JAVA解析DBF文件方案.pdf
- 磁盘被写保护无法使用怎么办?
- fgetc函数踩过的坑
- 微信开源PhxQueue:高可用、高可靠、高性能的分布式队列**
- java 内存 监控_监控JVM内存使用情况
- JAVA 时间戳与Date类型的相互转换、格式化日期、字符串日期转Date
- 永磁同步电机矢量控制中的双闭环是什么意思_【百问百答】ST 电机控制实战问答合辑 | 连载之二...
热门文章
- 【HDL系列】乘法器(5)——Radix-2 Booth乘法器
- 快速上手百度大脑人体关键点识别
- 宇视网络视频录像机添加摄像机常规方法
- 滴滴Logi-KafkaManager开源之路:一站式Kafka集群指标监控与运维管控平台
- ESP8266占空比测试
- 恒星物联-河道流量监测系统方案 流量监测
- 软件体系结构的第二次实验(解释器风格与管道过滤器风格
- 今天你代言了吗?WPS版“陈欧体”引热议
- davinci 达芬奇BI工具
- ①编写一个程序,从键盘接收一个字符串,然后按照字符顺序从小到大进行排序,并删除重复的字符。②集合A、B的差集③对分行输入的若干字符串按字典序(由小到大)进行排序并输出。