嵌套饼图/甜甜圈图 (Nested Pie/Donut Chart):玩转多层级比例数据
嵌套饼图/甜甜圈图是一种强大的数据可视化工具,通过同心圆环展示层级数据关系。它能同时呈现整体与部分、父级与子类别的关联,适用于网站流量分析、财务预算、用户调研等多场景。本文以Python的Matplotlib为例,详细讲解了嵌套饼图的实现步骤,包括数据准备、颜色设置和图表绘制。同时探讨了AI如何赋能数据可视化,实现智能数据处理、自然语言生成图表等未来趋势。文章还分析了嵌套饼图的优势(层级清晰、视觉
嵌套饼图/甜甜圈图 (Nested Pie/Donut Chart):玩转多层级比例数据

CSDN的各位朋友,大家好!你是否曾被那些层层叠叠、关系复杂的数据搞得焦头烂额?想用一张图说清楚,却发现传统的图表总是差点意思。今天,就来聊聊一个能够轻松驾驭层级数据的可视化神器——嵌套饼图。
如果说21世纪有什么技术能被冠以“革命性”之名,人工智能(AI)恐怕当仁不让。它不再是科幻小说里的遥远幻想,而是已经悄然融入我们日常生活的“隐形伙伴”。但很多人可能没意识到,AI的能力远不止于聊天和生成图片,它正在重塑一个更需要精准与洞察的领域——数据分析与可视化。
这篇文章将带你从概念到实践,彻底搞懂嵌套饼图,并探讨AI如何为我们解锁更高效、更智能的数据可视化未来。
1. 什么是嵌套饼图?为什么需要它?
想象一下俄罗斯套娃,或者大树的年轮。嵌套饼图(Nested Pie Chart),或其变体甜甜圈图(Donut Chart),就采用了类似的思想。它通过一系列同心圆环,将具有父子关系的数据清晰地展示出来。
- 内层圆环:代表最高层级的分类(父级)。
- 外层圆环:代表更细分的子类别,并且每个子类别都从属于内层的一个父级。
为什么需要它?
因为世界是分层的。一个公司的总收入,可以按部门分,部门的收入又可以按产品线分。一个网站的流量,可以按来源渠道分,每个渠道又可以按新老用户分。传统的饼图只能展示第一层,再想深入就得做好几个图,既繁琐又无法直观地看出全局联系。嵌套饼图恰好解决了这个痛点,它能在同一视图中,同时呈现“整体与部分”以及“层级与细分” 的关系。
2. 手把手实践:用 Matplotlib 绘制嵌套甜甜圈图
理论说再多,不如亲手敲一遍代码。这里以 Python 中最经典的 matplotlib 库为例,展示如何从零到一创建一个嵌套甜甜圈图。
✅ 第一步:准备数据
首先,我们需要具有层级关系的数据。假设我们有一份网站流量来源数据。
import matplotlib.pyplot as plt
import numpy as np
# 数据准备
# 外环:流量来源渠道
outer_labels = ['直接访问', '搜索引擎', '社交媒体']
outer_sizes = np.array([30, 45, 25])
# 内环:各渠道下的具体来源
# 注意:内环数据需要按外环的顺序进行分组
inner_labels = ['收藏夹', '输入网址', '谷歌', '百度', '必应', '知乎', '微博']
inner_sizes = np.array([10, 20, 25, 20, 10, 15, 10])
# 计算分组,用于颜色区分
# [len(inner_sizes_for_group_1), len(inner_sizes_for_group_2), ...]
# 这里直接手写了,实际应用中可以根据数据结构自动生成
# 10+20=30, 25+20=45, 15+10=25
# 收藏夹+输入网址 = 直接访问
# 谷歌+百度 = 搜索引擎
# 知乎+微博 = 社交媒体
inner_group_sizes = [2, 3, 2]
✅ 第二步:设置颜色和样式
为了让图表更清晰,我们为不同层级、不同分组设置不同的颜色。
# 颜色设置
outer_colors = plt.colormaps['tab20c'](np.arange(len(outer_sizes)) * 4)
# 内环颜色要根据外环的分组来,实现视觉上的关联
inner_colors = []
for i, group_size in enumerate(inner_group_sizes):
# 为每个组应用不同的颜色梯度
color_map = plt.colormaps['viridis'] # 也可以选择其他,如 'Blues', 'Greens'
group_colors = color_map(np.linspace(0.4, 0.8, group_size))
inner_colors.extend(group_colors)
✅ 第三步:绘制图表
这是最核心的步骤。我们通过调用两次 ax.pie() 函数,并巧妙利用 radius 和 wedgeprops 参数,来绘制两个叠加的“甜甜圈”。
# 创建图表
fig, ax = plt.subplots(figsize=(10, 8))
# 1. 绘制外环
wedges_outer, texts_outer, autotexts_outer = ax.pie(
outer_sizes,
radius=1.0,
colors=outer_colors,
labels=outer_labels,
startangle=90,
frame=True,
wedgeprops=dict(width=0.4, edgecolor='w'), # 设置环宽
autopct='%1.1f%%',
pctdistance=0.85
)
# 2. 绘制内环
wedges_inner, texts_inner, autotexts_inner = ax.pie(
inner_sizes,
radius=0.6, # 内环半径要小于外环
colors=inner_colors,
startangle=90,
wedgeprops=dict(width=0.4, edgecolor='w'),
autopct='%1.1f%%',
pctdistance=0.75
)
# 3. 添加图例和标题
ax.legend(wedges_inner, inner_labels,
title="具体来源",
loc="center left",
bbox_to_anchor=(1, 0, 0.5, 1))
plt.setp(autotexts_outer, size=10, weight="bold", color='white')
plt.setp(autotexts_inner, size=9, color='white')
ax.set_title("网站流量来源层级分析", fontsize=16, weight='bold')
# 确保图形是正圆
ax.set_aspect('equal')
plt.show()
运行以上代码,你就能得到一个信息量满满且视觉效果出色的嵌套甜甜圈图。
3. 跨界应用:嵌套饼图的5个实战案例
理论终须落地。嵌套饼图的强大之处在于其广泛的应用场景,远不止流量分析。
案例一:洞察土地利用的变迁
在环境科学和地理信息系统(GIS)中,研究者常用它来展示土地利用类型的转换。
- 内环:某个时间点的主要土地类型(如森林、耕地、水域)。
- 外环:数年后,这些土地类型分别转化成了什么(如部分森林变成了耕地,部分耕地变成了建设用地)。
这种图能让决策者一眼看出城市扩张、森林退化等变化的主要驱动力。
案例二:解密复杂的微生物世界
在生物信息学领域,分析肠道菌群、土壤微生物的构成是一项常规任务。微生物的分类(界、门、纲、目、科、属、种)天然就是层级结构。
- 内环:细菌的“门”(Phylum)级别分布。
- 外环:每个“门”下,更细分的“纲”(Class)或“属”(Genus)的相对丰度。
这有助于科学家快速识别不同环境下(如健康与患病状态)的优势菌群差异。
案例三:让预算分配一目了然
在企业财务或个人记账中,嵌套饼图是展示预算和开销的绝佳工具。
- 内环:一级开销类别(如生活成本、交通、娱乐)。
- 外环:每个一级类别下的具体支出项(如生活成本里的房租、水电、伙食费)。
管理者可以迅速定位主要的成本中心,优化预算分配。
案例四:深度挖掘用户调研数据
市场研究和产品分析中,调研问卷的结果往往是多维度的。
- 内环:用户的总体满意度(如满意、一般、不满意)。
- 外环:在“满意”的群体中,他们具体对哪些功能(如UI设计、性能、客服)最满意。
这能帮助产品经理精准定位产品的优势和劣势。
案例五:临床试验中的患者画像
在严谨的医疗研究中,确保临床试验的患者群体具有代表性至关重要。
- 内环:按性别划分的患者比例。
- 中环:每个性别下,不同年龄段的分布。
- 外环:每个年龄段下,不同种族的分布。
研究人员可以快速评估样本的多样性,确保研究结果的普适性。
4. 智能未来:当数据可视化遇上 AI
尽管 matplotlib 这样的工具功能强大,但从数据准备、代码编写到样式微调,整个过程仍然需要相当的专业知识和时间投入。尤其是面对海量、多源的异构数据时,人工处理的效率瓶颈和出错风险都显著增加。
那么,这一切究竟意味着什么?答案是——我们需要更智能的工具。
这正是 Gemini 这类前沿AI大模型崭露头角的地方。想象一下,未来的数据可视化流程可能会是这样:
- 智能数据整合与清洗:你只需向AI描述你的数据源和目标,AI就能自动完成数据连接、清洗、转换和聚合,并为你构建出适合嵌套饼图的层级结构。那些繁琐的ETL(提取、转换、加载)过程,将成为历史。
- 自然语言生成图表:不再需要编写复杂的代码。你可以直接用自然语言下达指令:“请为我生成一个展示各区域销售额及其产品线构成的嵌套甜甜圈图,突出显示华东区的贡献。”AI会立即理解你的意图,并生成符合要求、出版级别的精美图表。
- 智能美学与合规:AI能理解“专业”、“现代”、“简约”等风格要求,自动选择最佳的配色方案、字体和布局。对于有严格规范的场景(如企业VI、学术期刊),它能确保所有图表在视觉上高度一致且合规。
- 动态交互与洞察发现:AI生成的不再是静态图片,而是可交互的仪表盘。它甚至能主动分析图表,用高亮和文字标注出数据中的异常点、关键趋势和潜在关联,直接告诉你:“注意,第三季度的研发设备采购预算超支了20%,主要原因是项目A的硬件升级。”
Gemini 1.5 模型,正是这场变革的先行者。它拥有强大的多模态理解能力和代码生成能力,能够将数据处理、逻辑分析与视觉呈现无缝衔接。它的目标,是将数据科学家和分析师从繁琐的“体力劳动”中解放出来,让他们能专注于“思考”和“决策”——这才是人类智慧的核心价值所在。
5. 避坑指南:嵌套饼图的优势与局限
没有一种图表是万能的,嵌套饼图也有它的“脾气”。
✅ 优势 (Pros)
- 层级清晰:展示分层结构无人能及。
- 视觉直观:能快速提供一个“鸟瞰式”的全局视图。
- 空间高效:在有限区域内展示大量信息。
❌ 局限 (Cons)
- 不擅长精确比较:人眼对角度和面积的判断不如对长度(如条形图)敏感。当扇区大小接近时,很难精确比较。
- 容易视觉混乱:当层级过多(>3层)或类别过细时,图表会变得拥挤不堪,标签重叠,失去可读性。
- 不适合展示趋势:它本质上是静态快照,不适合展示数据随时间的变化。
使用建议
- 保持简洁:层级尽量控制在2-3层。
- 合并小项:将占比极小的类别合并为“其他”,避免图表过于零碎。
- 巧用颜色:用同一色系的不同深浅来表示父子关系,增强关联感。
- 组合使用:当需要精确比较时,可以搭配条形图或表格一起使用。
总结
嵌套饼图/甜甜圈图,无疑是数据可视化工具箱中一件应对层级数据的利器。从商业决策到科学研究,它都能以其独特的魅力,将复杂的数据关系转化为直观的视觉故事。
而随着AI技术的深度融合,我们有理由相信,未来创造和解读这些复杂图表的方式将发生颠覆性的变化。数据可视化的门槛将不断降低,而其所能揭示的洞察深度将不断增加。
那么,你准备好拥抱这个由数据和AI共同驱动的新时代了吗?你认为AI还会从哪些方面改变我们与数据交互的方式?欢迎在评论区留下你的思考!
更多推荐

所有评论(0)