文章目录
- 一、前言
- 二、主要内容
- 三、总结
🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/
一、前言
维恩图(Venn diagram),也叫文氏图或韦恩图,是一种关系型图表,用于显示元素集合之间的重叠区域。它帮助我们查看集合元素的分布关系,特别适用于图形化描述多个集合之间的交集、并集和差异。维恩图被广泛用于数学、统计学、逻辑、计算机科学和商业分析。它能够表示两组或更多组数据之间的逻辑关系。维恩图涉及重叠的圈子,这些圈子展示了组织结构、共同性和差异。
二、主要内容
让我们更详细地了解维恩图:
-
维恩图的基本概念:
- 维恩图由圆形或椭圆形区域组成,这些区域表示不同的集合。因此,维恩图的主要元素包括圆圈、交集、逻辑表达。
- 每个圆圈代表一个集合,而重叠部分则表示这些集合之间的共同元素。
-
维恩图的用途:
- 比较策略:我们可以使用维恩图来比较不同策略、决策或流程的潜在结果。每个圆圈代表一个观点或事物,重叠部分表示相同之处,而各自不重叠的部分则表示各自不同的特征。
- 突出显示组合和重叠:当我们需要通过消除工作流冗余来削减成本时,可以使用维恩图的重叠部分来定位任务。通过将方案细化并拆分为多个任务,我们可以解决问题或满足需求。
- 数据分析:企业决策者可以利用维恩图进行数据分析,以加强数据管理并做出决策判断。
- 广告品牌视觉化表达:维恩图的交叉环形形式常用于品牌的视觉效果表达,比如标志演变、广告活动、产品图表等。
通过维恩图,我们可以更好地理解集合之间的相同和不同之处,将抽象的事物图形化,降低复杂性,做出最优选择。
下面展示一个绘制维恩图的例子,参考了一篇 Cell 论文里的维恩图。论文:Shen, B., Yi, X., Sun, Y., Bi, X., Du, J., Zhang, C., … & Guo, T. (2020). Proteomic and metabolomic characterization of COVID-19 patient sera. Cell, 182(1), 59-72.
借助 EVenn 可以轻松绘制和分析维恩图。
- 轻松在线创建可重复、可编辑和可统计的维恩图和维恩-替代图。
- 支持 5 种类型的集合关系可视化。
- 开发一个统一的矩阵,作为所有 7 个工具的输入。
- 为任意数量的集合列出每个交集的元素。
- 计算集合一致性的统计意义。
- 生成出版物质量的矢量图像供下载。
- 根据个人需求定制大量样式参数。
效果如下图所示:
三、总结
借助 EVenn 可以轻松绘制和分析维恩图。利用 Python 编程绘制维恩图是另一种方法,可以借助 matplotlib-venn
、pyvenn
或 UpSetPlot
实现。然而,这需要花费更多时间来学习 Python、组织数据和调整图表参数,以确保绘制的维恩图既美观又具有高分辨率,适合用于出版物。个人认为,维恩图的绘制相对简单、直观,因此通过编程绘制可能并非必要。
此外,您还可以使用 Visio 或 PPT 手动绘制圆形或椭圆形,然后手动设置它们的重叠部分和图例说明,实现更灵活地绘制维恩图并让它美观、直观。
维恩图作为一种强大的可视化工具,也有一些局限性。让我们来看看其中一些:
-
有限的集合数量:维恩图最适合用于描述两个或三个集合之间的关系。当涉及到更多集合时,维恩图会变得复杂且难以理解。
-
面积不准确:维恩图中的圆圈面积并不总是准确地表示集合的大小。这是因为我们通常使用圆圈的面积来表示集合元素的数量,但实际上,圆圈的面积可能不是按比例缩放的。
-
不适合连续数据:维恩图主要用于显示离散的集合元素。如果你的数据是连续的,例如时间序列数据或温度变化,维恩图可能不是最佳选择。
-
无法显示交集的具体元素:维恩图只能显示集合之间的交集,但无法具体列出交集中的哪些元素。如果你需要详细了解交集的内容,维恩图就无法提供这种信息。
-
不适用于大规模数据:当数据集非常大时,维恩图会变得混乱且难以解读。在这种情况下,其他可视化工具(如树状图或热力图)可能更适合。
-
不适合比较比例:维恩图不适合用于比较集合之间的比例。如果你关心的是集合元素的百分比或比例,其他图表(如饼图)更适合。
总之,维恩图在展示集合之间的关系方面非常有用,但在使用时需要考虑其局限性,并根据具体情况选择合适的可视化工具。
📚️ 参考链接:
- Chen, T., Zhang, H., Liu, Y., Liu, Y. X., & Huang, L. (2021). EVenn: Easy to create repeatable and editable Venn diagrams and Venn networks online. Journal of genetics and genomics= Yi chuan xue bao, 48(9), 863-866.
- matplotlib-venn - Venn diagram plotting routines for Python/Matplotlib
- pyvenn - 2 ~ 6 sets venn diagram for python
- UpSetPlot - Draw UpSet plots with Matplotlib
- Python 数据可视化之韦恩图