文章目录

  • 饼图:
  • pie函数
  • 示例说明:
  • 扩展应用
    • 饼图常用属性
    • 甜甜圈图表
  • 总结
    • 饼图的缺点:
    • 饼图和柱状图区别

饼图:

饼图(pie plot),或称饼状图,在日常的工作、商业活动、数据分析等领域中饼图是应用最广泛的一种数据展示的方式,用于表示不同分类的占比情况,通过弧度大小来对比各种分类。饼图通过将一个圆饼按照分类的占比划分成多个区块,整个圆饼代表数据的总量,每个区块(圆弧)表示该分类占总体的比例大小,所有区块(圆弧)的加和等于100%。

pie函数

  1. 函数定义:
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)
  1. 常用参数:
  • 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之饼图相关推荐

  1. python使用matplotlib可视化饼图(pie plot)、可视化嵌套的环形饼图(Nested circular pie chart)

    python使用matplotlib可视化饼图(pie plot).可视化嵌套的环形饼图(Nested circular pie chart) 目录 python使用matplotlib

  2. python画饼图-python使用Matplotlib画饼图

    本文实例为大家分享了Android九宫格图片展示的具体代码,供大家参考,具体内容如下 函数参数 plt.pie(x, explode=None, labels=None, colors=None, a ...

  3. python利用matplotlib做饼图_python利用matplotlib库绘制饼图的方法示例

    介绍 matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图.而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中. 它的文档相当 ...

  4. Python matplotlib绘制饼图

    Python matplotlib绘制饼图 继前面使用matplotlib绘制折线图.散点图.柱状图和直方图,本篇文章继续介绍使用matplotlib绘制饼图. 一.matplotlib绘制饼图 # ...

  5. 利用matplotlib制作饼图

    利用matplotlib制作饼图: 绘制饼图: x : (每一块)的比例,如果sum(x)>1,会将多出的部分进行均分: explode: (每一块)离开中心距离 labels: (每一块)饼图 ...

  6. python画饼图-python matplotlib画饼图

    画饼画使用的方法是plt.pie方法,里面有几个参数可以设置,具体后面再提,先看下代码和效果.这里以常见的几个课目的值为例,算下各个科目在饼图中占的比重. import matplotlib.pypl ...

  7. matplotlib(4)饼图

    准备工作 import matplotlib.pyplot as plt %matplotlib inline import numpy as np import pandas as pd plt.r ...

  8. python绘制饼图程序_python使用Matplotlib绘制饼图

    一.函数原型 plt.pie(x, explode=None, labels=None, colors=None, autopct=None, pctdistance=0.6, shadow=Fals ...

  9. 利用pandas,matplotlib画饼图

    前言 今天没得前言 这样的数据: 先画一个最简单的饼图: # @DATE : 2021-1-3 # @TIME : 13:36 # @USER : kirin import pandas as pd ...

  10. python中matplotlib库饼图_python 使用 matplotlib.pyplot来画柱状图和饼图

    导入包 import matplotlib.pyplot as plt 柱状图 最简柱状图 # 显示高度 def autolabel(rects): for rect in rects: height ...

最新文章

  1. 为什么jdk源码推荐ThreadLocal使用static
  2. 背包模型dp1:01背包,完全背包,多重背包的两大优化的详解
  3. [原创] 腾讯RTX二次开发相关的一些注意事项
  4. 密码登录源码(jsp+java+数据库)
  5. 直播预告 | AAAI 2022论文解读:基于对比学习的预训练语言模型剪枝压缩
  6. mysql截取字符串中的部分内容_Mysql字符串截取及获取指定字符串中的数据
  7. android 05 桢布局:FrameLayout 网格布据 GridLayout
  8. 25+ 个 jQuery 网页拖放操作的插件
  9. 支持 RISC-V 芯片的 Android 系统来了!
  10. 【新概念第一册】Lesson_11 Is this your shirt?
  11. 新塘linux启动过程,NUC972调试笔记之NAND分区调整新增
  12. 华为U2000统一网管
  13. HTML中的window对象和document对象详解
  14. Typora 官网被Q了?(文中附下载地址)
  15. 打印纸张尺寸换算_常用纸张的尺寸大小对照表
  16. java导出excel锁定状态_填报表导出excel后不可写的单元格处于锁定状态
  17. Sniffing_Spoofing Report
  18. VMware Workstation 无法连接到虚拟机
  19. wcs开发_WCS 5.2的评论—用于Webcast和Webcam开发人员的WebRTC服务器
  20. 仿QQ点赞吹泡泡效果

热门文章

  1. Fater-Rcnn原理详解
  2. opencv学习笔记及复习(四)物体追踪及人体肤色追踪
  3. 几行代码就能去除图像和视频背景,还用啥PS
  4. 智能设计|零基础,低成本,轻松实现设计效率翻倍
  5. 查询大全,肯定有你需要的!
  6. Java面试题总结-2022版
  7. 计算机科学与昆虫,基于视觉的昆虫物种识别算法研究
  8. python excel 饼图 简书_Python可视化29_matplotlib-饼图(pie)
  9. Sping学习笔记(附实例,超详细)
  10. ES8新特性 async,await实现异步