数据可视化之维恩图 Venn diagram

2024-02-10 20:04

本文主要是介绍数据可视化之维恩图 Venn diagram,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 一、前言
  • 二、主要内容
  • 三、总结

🍉 CSDN 叶庭云https://yetingyun.blog.csdn.net/


一、前言

维恩图(Venn diagram),也叫文氏图或韦恩图,是一种关系型图表,用于显示元素集合之间的重叠区域。它帮助我们查看集合元素的分布关系,特别适用于图形化描述多个集合之间的交集、并集和差异。维恩图被广泛用于数学、统计学、逻辑、计算机科学和商业分析。它能够表示两组或更多组数据之间的逻辑关系。维恩图涉及重叠的圈子,这些圈子展示了组织结构、共同性和差异。

在这里插入图片描述


二、主要内容

让我们更详细地了解维恩图:

  1. 维恩图的基本概念

    • 维恩图由圆形或椭圆形区域组成,这些区域表示不同的集合。因此,维恩图的主要元素包括圆圈、交集、逻辑表达
    • 每个圆圈代表一个集合,而重叠部分则表示这些集合之间的共同元素。
  2. 维恩图的用途

    • 比较策略:我们可以使用维恩图来比较不同策略、决策或流程的潜在结果。每个圆圈代表一个观点或事物,重叠部分表示相同之处,而各自不重叠的部分则表示各自不同的特征。
    • 突出显示组合和重叠:当我们需要通过消除工作流冗余来削减成本时,可以使用维恩图的重叠部分来定位任务。通过将方案细化并拆分为多个任务,我们可以解决问题或满足需求。
    • 数据分析:企业决策者可以利用维恩图进行数据分析,以加强数据管理并做出决策判断。
    • 广告品牌视觉化表达:维恩图的交叉环形形式常用于品牌的视觉效果表达,比如标志演变、广告活动、产品图表等。

通过维恩图,我们可以更好地理解集合之间的相同和不同之处,将抽象的事物图形化,降低复杂性,做出最优选择。

下面展示一个绘制维恩图的例子,参考了一篇 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-vennpyvennUpSetPlot 实现。然而,这需要花费更多时间来学习 Python、组织数据和调整图表参数,以确保绘制的维恩图既美观又具有高分辨率,适合用于出版物。个人认为,维恩图的绘制相对简单、直观,因此通过编程绘制可能并非必要。

此外,您还可以使用 Visio 或 PPT 手动绘制圆形或椭圆形,然后手动设置它们的重叠部分和图例说明,实现更灵活地绘制维恩图并让它美观、直观。

维恩图作为一种强大的可视化工具,也有一些局限性。让我们来看看其中一些:

  1. 有限的集合数量:维恩图最适合用于描述两个或三个集合之间的关系。当涉及到更多集合时,维恩图会变得复杂且难以理解。

  2. 面积不准确维恩图中的圆圈面积并不总是准确地表示集合的大小。这是因为我们通常使用圆圈的面积来表示集合元素的数量,但实际上,圆圈的面积可能不是按比例缩放的。

  3. 不适合连续数据:维恩图主要用于显示离散的集合元素。如果你的数据是连续的,例如时间序列数据或温度变化,维恩图可能不是最佳选择。

  4. 无法显示交集的具体元素:维恩图只能显示集合之间的交集,但无法具体列出交集中的哪些元素。如果你需要详细了解交集的内容,维恩图就无法提供这种信息。

  5. 不适用于大规模数据:当数据集非常大时,维恩图会变得混乱且难以解读。在这种情况下,其他可视化工具(如树状图或热力图)可能更适合。

  6. 不适合比较比例:维恩图不适合用于比较集合之间的比例。如果你关心的是集合元素的百分比或比例,其他图表(如饼图)更适合。

总之,维恩图在展示集合之间的关系方面非常有用,但在使用时需要考虑其局限性,并根据具体情况选择合适的可视化工具。


📚️ 参考链接:

  • 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 数据可视化之韦恩图

这篇关于数据可视化之维恩图 Venn diagram的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/697948

相关文章

Git可视化管理工具(SourceTree)使用操作大全经典

《Git可视化管理工具(SourceTree)使用操作大全经典》本文详细介绍了SourceTree作为Git可视化管理工具的常用操作,包括连接远程仓库、添加SSH密钥、克隆仓库、设置默认项目目录、代码... 目录前言:连接Gitee or github,获取代码:在SourceTree中添加SSH密钥:Cl

Java注解之超越Javadoc的元数据利器详解

《Java注解之超越Javadoc的元数据利器详解》本文将深入探讨Java注解的定义、类型、内置注解、自定义注解、保留策略、实际应用场景及最佳实践,无论是初学者还是资深开发者,都能通过本文了解如何利用... 目录什么是注解?注解的类型内置注编程解自定义注解注解的保留策略实际用例最佳实践总结在 Java 编程

Pandas中统计汇总可视化函数plot()的使用

《Pandas中统计汇总可视化函数plot()的使用》Pandas提供了许多强大的数据处理和分析功能,其中plot()函数就是其可视化功能的一个重要组成部分,本文主要介绍了Pandas中统计汇总可视化... 目录一、plot()函数简介二、plot()函数的基本用法三、plot()函数的参数详解四、使用pl

一文教你Python如何快速精准抓取网页数据

《一文教你Python如何快速精准抓取网页数据》这篇文章主要为大家详细介绍了如何利用Python实现快速精准抓取网页数据,文中的示例代码简洁易懂,具有一定的借鉴价值,有需要的小伙伴可以了解下... 目录1. 准备工作2. 基础爬虫实现3. 高级功能扩展3.1 抓取文章详情3.2 保存数据到文件4. 完整示例

使用Java将各种数据写入Excel表格的操作示例

《使用Java将各种数据写入Excel表格的操作示例》在数据处理与管理领域,Excel凭借其强大的功能和广泛的应用,成为了数据存储与展示的重要工具,在Java开发过程中,常常需要将不同类型的数据,本文... 目录前言安装免费Java库1. 写入文本、或数值到 Excel单元格2. 写入数组到 Excel表格

python处理带有时区的日期和时间数据

《python处理带有时区的日期和时间数据》这篇文章主要为大家详细介绍了如何在Python中使用pytz库处理时区信息,包括获取当前UTC时间,转换为特定时区等,有需要的小伙伴可以参考一下... 目录时区基本信息python datetime使用timezonepandas处理时区数据知识延展时区基本信息

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义

SpringMVC 通过ajax 前后端数据交互的实现方法

《SpringMVC通过ajax前后端数据交互的实现方法》:本文主要介绍SpringMVC通过ajax前后端数据交互的实现方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价... 在前端的开发过程中,经常在html页面通过AJAX进行前后端数据的交互,SpringMVC的controll

使用Python实现矢量路径的压缩、解压与可视化

《使用Python实现矢量路径的压缩、解压与可视化》在图形设计和Web开发中,矢量路径数据的高效存储与传输至关重要,本文将通过一个Python示例,展示如何将复杂的矢量路径命令序列压缩为JSON格式,... 目录引言核心功能概述1. 路径命令解析2. 路径数据压缩3. 路径数据解压4. 可视化代码实现详解1

Python 交互式可视化的利器Bokeh的使用

《Python交互式可视化的利器Bokeh的使用》Bokeh是一个专注于Web端交互式数据可视化的Python库,本文主要介绍了Python交互式可视化的利器Bokeh的使用,具有一定的参考价值,感... 目录1. Bokeh 简介1.1 为什么选择 Bokeh1.2 安装与环境配置2. Bokeh 基础2