matplotlib之饼图
文章目录
- 饼图:
- pie函数
- 示例说明:
- 扩展应用
- 饼图常用属性
- 甜甜圈图表
- 总结
- 饼图的缺点:
- 饼图和柱状图区别
饼图:
饼图(pie plot),或称饼状图,在日常的工作、商业活动、数据分析等领域中饼图是应用最广泛的一种数据展示的方式,用于表示不同分类的占比情况,通过弧度大小来对比各种分类。饼图通过将一个圆饼按照分类的占比划分成多个区块,整个圆饼代表数据的总量,每个区块(圆弧)表示该分类占总体的比例大小,所有区块(圆弧)的加和等于100%。
pie函数
- 函数定义:
matplotlib.pyplot.pie(x, explode=None, labels=None, colors=None, autopct=None, pctdistance=0.6, shadow=False, labeldistance=1.1, startangle=0, radius=1, counterclock=True, wedgeprops=None, textprops=None, center=(0, 0), frame=False, rotatelabels=False, *, normalize=True, data=None)
- 常用参数:
x:指定绘图的数据,每一份数据会按照X/SUM(X)的比例进行划分;
explode:指定饼图某些部分的突出显示,即呈现爆炸式;
labels:为饼图添加标签说明,类似于图例说明;
colors:指定饼图的填充色;
autopct:自动添加百分比显示,可以采用格式化的方法显示;
pctdistance:设置百分比标签与圆心的距离;
shadow:是否添加饼图的阴影效果;
labeldistance:设置各扇形标签(图例)与圆心的距离;
startangle:设置饼图的初始摆放角度;
radius:设置饼图的半径大小;
counterclock:是否让饼图按逆时针顺序呈现;
wedgeprops:设置饼图内外边界的属性,如边界线的粗细、颜色等;
textprops:设置饼图中文本的属性,如字体大小、颜色等;
center:指定饼图的中心点位置,默认为原点
frame:是否要显示饼图背后的图框,如果设置为True的话,需要同时控制图框x轴、y轴的范围和饼图的中心位置;
pie的详细定义:
https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.pie.html
示例说明:
通过夏季宵夜的销售占比进行示例说明:
import matplotlib.pyplot as plt
import matplotlib"""
font:设置中文
"""
matplotlib.rcParams['font.family'] = ['Heiti TC']#设置大小
plt.rcParams['figure.figsize']=[10,10]
#定义饼状图的标签,标签是列表
labels =[ '麻辣小龙虾','炭烤生蚝','花毛一体','麻辣田螺']
#每个标签占多大,会自动按照百分比绘制
data = [15,30,45,10]
# 绘制饼图
plt.pie(data,labels=labels)plt.show()
运行结果:
扩展应用
饼图常用属性
在绘制饼图的时候增加图例,数据标签,以及增加相应的显示效果
换种方式来设置颜色,通过get_cmap函数来选择matplotlib预定义的colormap设置颜色,具体后续会专门写一篇文章进行介绍。
- colormap的介绍
https://matplotlib.org/stable/tutorials/colors/colormaps.html?highlight=colormap - get_cmap函数定义
matplotlib.cm.get_cmap(name=None, lut=None)
官网介绍:https://matplotlib.org/stable/api/cm_api.html#matplotlib.cm.get_cmap
import matplotlib.pyplot as plt
import matplotlib"""
font:设置中文
"""
matplotlib.rcParams['font.family'] = ['Heiti TC']
#设置大小
plt.rcParams['figure.figsize']=[10,10]
#定义饼状图的标签
labels =[ '麻辣小龙虾','炭烤生蚝','花毛一体','麻辣田螺']
#每个标签占比,会自动按照x/sum(x)所占百分比绘制
data = [15,30,45,10]
#对比各个部分的凸显程度
explode = (0,0.1,0.2,0.3)
"""
autopct='%.0f%%' 显示百分比
textprops = {'fontsize':30, 'color':'k'} 大小为30,颜色为黑色
explode=explode 饼图某些部分的突出显示
shadow=True 显示阴影
startangle,起始角度,0,表示第一块从0开始逆时针转.
pctdistance,百分比的文本离圆心的距离为
"""
#选择tab20c的色彩,
cmap = plt.get_cmap("tab20c")
#选择tab20c中的4种颜色
color=cmap([1,3,6,9])
plt.pie(x=data, colors=ccolor,labels=labels,textprops = {'fontsize':12, 'color':'k'},explode=explode, shadow=True,startangle=30, autopct="%0.2f%%",pctdistance = 0.5)
# 显示图例
plt.legend()
# 展示
plt.show()
运行结果:
甜甜圈图表
甜甜圈图,又称之为环形图,是饼图的一种变体,是指将两个及以上的大小不一的饼图叠在,挖去中间部分构成的图形,本质是饼图将中间区域挖空。
对比饼图,甜甜圈图能够比较方便的对比各个不同的图形,而不是将注意力关注在饼图的各个扇形所占整体比重上,一般来说饼图很难进行多个饼图直接的对比,而且饼图的空间利用率不如甜甜圈图,甜甜圈图内部空心部分可以显示文本信息,标题等
甜甜圈图是在饼图的基础上通过wedgeprops来控制饼图内外边界的属性进行数据的展示。以家庭开支为例进行说明,其中分为内环和外环进行嵌套,来展示两个大类的数据占比情况。
import matplotlib.pyplot as plt
import matplotlib"""
font:设置中文
"""
matplotlib.rcParams['font.family'] = ['Heiti TC']
fig, ax = plt.subplots()size = 0.3category =[60,30,10]
category_labels=["女主","小孩","男主"]
detail=[30,30,20,10,5,5]
detail_labels=["化妆品","衣服","玩具","零食 ","电子产品","游戏"]#获取需要填充的颜色
cmap = plt.get_cmap("tab20c")
outer_colors = cmap(np.arange(3)*4)
inner_colors = cmap([1, 2, 5, 6, 9, 10])#外圈成员开支分类,wedgeprops控制圆环的宽度
ax.pie(category, radius=1, colors=outer_colors,labels=category_labels,textprops = {'fontsize':15, 'color':'black'},wedgeprops=dict(width=size, edgecolor='w'))#内圈各个成员开支细分,wedgeprops控制圆环的宽度
ax.pie(detail, radius=1-size, colors=inner_colors,labels=detail_labels,textprops = {'fontsize':12, 'color':'w'},wedgeprops=dict(width=size, edgecolor='w'))ax.set(aspect="equal", title='家庭开支比例')
plt.legend()
plt.show()
运行结果:
总结
饼图的主要使用场景是用于反映数据构成的比例关系。
饼图的缺点:
- 饼图不适用于多分类的数据
因为随着分类的增多,每个切片就会变小,最后导致大小区分不明显,每个切片看上去都差不多大小,这样对于数据的对比是没有什么意义的。所以饼图不适合用于数据量大且分类很多的场景。
- 相比于具备同样功能的其他图表(比如百分比柱状图),饼图需要占据更大的画布空间。
- 很难进行多个饼图之间的数值比较。
饼图和柱状图区别
- 饼图主要是展示分类之间的占比情况。
- 而柱状图主要展示各个分类数量、大小的对比
matplotlib之饼图相关推荐
- python使用matplotlib可视化饼图(pie plot)、可视化嵌套的环形饼图(Nested circular pie chart)
python使用matplotlib可视化饼图(pie plot).可视化嵌套的环形饼图(Nested circular pie chart) 目录 python使用matplotlib
- python画饼图-python使用Matplotlib画饼图
本文实例为大家分享了Android九宫格图片展示的具体代码,供大家参考,具体内容如下 函数参数 plt.pie(x, explode=None, labels=None, colors=None, a ...
- python利用matplotlib做饼图_python利用matplotlib库绘制饼图的方法示例
介绍 matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图.而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中. 它的文档相当 ...
- Python matplotlib绘制饼图
Python matplotlib绘制饼图 继前面使用matplotlib绘制折线图.散点图.柱状图和直方图,本篇文章继续介绍使用matplotlib绘制饼图. 一.matplotlib绘制饼图 # ...
- 利用matplotlib制作饼图
利用matplotlib制作饼图: 绘制饼图: x : (每一块)的比例,如果sum(x)>1,会将多出的部分进行均分: explode: (每一块)离开中心距离 labels: (每一块)饼图 ...
- python画饼图-python matplotlib画饼图
画饼画使用的方法是plt.pie方法,里面有几个参数可以设置,具体后面再提,先看下代码和效果.这里以常见的几个课目的值为例,算下各个科目在饼图中占的比重. import matplotlib.pypl ...
- matplotlib(4)饼图
准备工作 import matplotlib.pyplot as plt %matplotlib inline import numpy as np import pandas as pd plt.r ...
- python绘制饼图程序_python使用Matplotlib绘制饼图
一.函数原型 plt.pie(x, explode=None, labels=None, colors=None, autopct=None, pctdistance=0.6, shadow=Fals ...
- 利用pandas,matplotlib画饼图
前言 今天没得前言 这样的数据: 先画一个最简单的饼图: # @DATE : 2021-1-3 # @TIME : 13:36 # @USER : kirin import pandas as pd ...
- python中matplotlib库饼图_python 使用 matplotlib.pyplot来画柱状图和饼图
导入包 import matplotlib.pyplot as plt 柱状图 最简柱状图 # 显示高度 def autolabel(rects): for rect in rects: height ...
最新文章
- 为什么jdk源码推荐ThreadLocal使用static
- 背包模型dp1:01背包,完全背包,多重背包的两大优化的详解
- [原创] 腾讯RTX二次开发相关的一些注意事项
- 密码登录源码(jsp+java+数据库)
- 直播预告 | AAAI 2022论文解读:基于对比学习的预训练语言模型剪枝压缩
- mysql截取字符串中的部分内容_Mysql字符串截取及获取指定字符串中的数据
- android 05 桢布局:FrameLayout 网格布据 GridLayout
- 25+ 个 jQuery 网页拖放操作的插件
- 支持 RISC-V 芯片的 Android 系统来了!
- 【新概念第一册】Lesson_11 Is this your shirt?
- 新塘linux启动过程,NUC972调试笔记之NAND分区调整新增
- 华为U2000统一网管
- HTML中的window对象和document对象详解
- Typora 官网被Q了?(文中附下载地址)
- 打印纸张尺寸换算_常用纸张的尺寸大小对照表
- java导出excel锁定状态_填报表导出excel后不可写的单元格处于锁定状态
- Sniffing_Spoofing Report
- VMware Workstation 无法连接到虚拟机
- wcs开发_WCS 5.2的评论—用于Webcast和Webcam开发人员的WebRTC服务器
- 仿QQ点赞吹泡泡效果