局部与整体类可视化图像
局部与整体类可视化图像
局部与整体类可视图表全解析
1. 韦恩图(Venn Diagram)
特点与原理
视觉表现:通过圆形重叠区域展示集合的交集和并集,重叠面积与元素数量正相关。
数学基础:基于集合论,支持2-5个集合(超过5个需用欧拉图变体)。
局限性:集合过多时视觉混乱,无法展示精确数值(需依赖标签)。
应用场景
生物学:基因家族共同表达分析。
商业分析:用户行为重叠(如同时使用产品A和B的客户比例)。
案例:比较Twitter和Instagram用户的共同活跃人群。
from matplotlib_venn import venn3 import matplotlib.pyplot as plt # 定义三个集合的大小及交集 venn3(subsets=(20, 10, 8, 5, 3, 2, 1), set_labels=('Twitter', 'Instagram', 'TikTok')) plt.title("Social Media User Overlap") plt.show()
实验结果:

输出说明:三圆重叠,标签显示各区域基数,中心三重交集区域占比最小。
2. 饼图(Pie Chart)与环形图(Doughnut Chart)
对比分析
| 特性 | 饼图 | 环形图 |
|---|---|---|
| 中心区域 | 无留白 | 留白(可放置标题/指标) |
| 多系列对比 | 需并列多个饼图 | 可嵌套多层环 |
| 可读性 | 小块面积难比较 | 更清晰(尤其大数据) |
应用场景
-
饼图:单一维度占比(如2023年公司各部门预算分配)。
-
环形图:时间序列对比(如2022 vs 2023年支出结构变化)。
Python实现
实验结果:

左为饼图,右为环形图。环形图中心空白区域可添加总预算数值。
3. 旭日图(Sunburst Chart)
层级数据可视化
-
原理:从中心向外辐射,每层代表一个数据层级,角度宽度=子类占比。
-
优势:直观展示父子关系(如国家→省→城市销售额)。
-
交互功能:支持点击展开/折叠层级(Plotly实现)。
应用场景
-
电商:商品类目下各子类销售占比。
-
文件系统:磁盘空间占用分析。
Python实现(Plotly)
实验结果:

交互式图表,悬停显示数值,点击可聚焦查看子类。
4. 圆堆积图(Circular Packing)
实验设计
-
数据准备:模拟生态系统数据(哺乳动物→食肉动物→具体物种)。
-
工具选择:
circlify库计算圆形布局,matplotlib绘制。
Python实现
实验结果:

实验总结与建议
1. 工具选择对比
| 工具库 | 适用图表 | 交互性 | 学习曲线 |
|---|---|---|---|
| Matplotlib | 饼图/环形图/韦恩图 | 无 | 低 |
| Plotly | 旭日图/高级饼图 | 强 | 中 |
| Circlify | 圆堆积图 | 无 | 高 |
2. 关键发现
-
饼图陷阱:当分类超过6个时,建议改用条形图或环形图。
-
旭日图优势:比传统树图更节省空间,适合深层次数据。
-
圆堆积图局限:面积比较不精确,需配合标签使用。
3. 性能优化
-
大数据处理:Plotly的旭日图在超过1万节点时需启用
maxdepth限制层级。 -
颜色策略:使用渐变色系(如
viridis)提升环形图的多系列区分度。
扩展方向
-
动态可视化:用
Plotly Dash实现实时更新的旭日图(如股票行业占比变化)。 -
3D变体:尝试
pyecharts的3D饼图增强视觉冲击力(适用于演示场景)。
通过本实验,我们验证了不同局部-整体图表的适用边界及工具链的最佳实践。实际应用中需结合数据复杂度、展示场景和受众需求灵活选择。
浙公网安备 33010602011771号