跟着高分SCI学画图:GPT教你绘制维恩图

文摘   2024-08-08 08:40   德国  

   跟着高分SCI学画图:GPT教你绘制维恩

维恩图(Venn Diagram)是一种图示工具,用于表示不同集合之间的关系及其交集。让我们用一组水上运动的特点来学习一下制作维恩图吧!

维恩图

简单的维恩图不简单

维恩图的特点:

  • 可视化清晰:维恩图通过简单的几何图形(通常是圆形)表示集合及其关系,直观易懂。
  • 多集合表示:能够同时展示多个集合及其交集、并集和差集的关系,常见的有双集合、三集合和多集合维恩图。
  • 交集和差集的表示:通过重叠和不重叠的区域直观地展示集合之间的交集和差集。
  • 适用于各种领域:广泛应用于数学、逻辑学、统计学、数据分析、计算机科学等领域。

维恩图的优点:

  • 直观性强:维恩图能直观地展示集合之间的关系,易于理解和解释。
  • 简洁性:图形简洁,能快速传达信息,适用于演示和教学。
  • 易于绘制:无论是手绘还是使用软件工具,维恩图都相对容易绘制。
  • 灵活性:可用于比较多个集合,展示复杂的集合关系。

维恩图的缺点:

  • 局限性:随着集合数量的增加,维恩图变得复杂且难以解读。一般适用于两个或三个集合的比较,再多的集合就不适合使用维恩图。
  • 空间利用效率低:在表示多个集合时,需要较大的空间,尤其是在集合关系复杂时,图形容易显得拥挤。
  • 数量限制:维恩图不适合处理非常大的数据集或非常多的集合,因为图形会变得过于复杂且难以解读。
  • 数据类型限制:维恩图主要适用于离散数据,对于连续数据或需要展示具体数值的场景不太适用。

代码部分

数据

我们有三个集合,分别叙述了游泳(swimming);潜水(diving)和划船(rowling)的一些特点。我们将用维恩图来看看他们有社么共同的特点!

  • swimming = {Cardiovascular health, Endurance, Minimal equipment, Recreational, Competition}
  • diving = {Underwater exploration, Specialized equipment, Training required, Recreational, Adventure}
  • rowing = {Teamwork, Upper body strength, Endurance, Equipment needed, Recreational, Competition}

导入环境

import matplotlib.pyplot as plt
from matplotlib_venn import venn3
import random

  • import matplotlib.pyplot as plt:导入Matplotlib库的pyplot模块并将其命名为plt,用于绘图。
  • from matplotlib_venn import venn3:从matplotlib_venn库导入venn3函数,用于绘制三集合的维恩图。
  • import random:导入random模块,用于生成随机数(在这个特定代码中没有用到)。

导入数据集合

#游泳的特点
swimming = {'Cardiovascular health''Endurance''Minimal equipment''Recreational''Competition'}
#潜水的特点
diving = {'Underwater exploration''Specialized equipment''Training required''Recreational''Adventure'}
#划船的特点
rowing = {'Teamwork''Upper body strength''Endurance''Equipment needed''Recreational''Competition'}
  • swimmingdivingrowing:定义三个集合,每个集合包含对应水上运动的特点。

绘制维恩图

# Create a Venn diagram
plt.figure(figsize=(8, 8))
venn = venn3([swimming, diving, rowing], ('Swimming''Diving''Rowing'))

# Set title
plt.title("Venn Diagram of Characteristics of Water Sports")

plt.show()
  • plt.figure(figsize=(12, 12)):创建一个新的图形,设置图形的大小为12x12英寸。
  • venn = venn3([swimming, diving, rowing], ('Swimming', 'Diving', 'Rowing')):使用venn3函数创建维恩图,参数是三个集合和它们的标签。
  • plt.title("Venn Diagram of Characteristics of Water Sports"):设置图表的标题。
  • plt.show():显示图表

拓展

如图所示,这三项运动有一个共同点,游泳和潜水没有共同点,游泳和划船有两个共同点,而划船和潜水也没有共同点。但是基于这张图,我们并不知道那些共同点是什么。让我们把那些共同点加上去吧。


# Create a Venn diagram
plt.figure(figsize=(12, 12))
venn = venn3([swimming, diving, rowing], ('Swimming''Diving''Rowing'))

# Annotate each section with the characteristics
venn.get_label_by_id('100').set_text('\n'.join(swimming - diving - rowing))
venn.get_label_by_id('010').set_text('\n'.join(diving - swimming - rowing))
venn.get_label_by_id('001').set_text('\n'.join(rowing - swimming - diving))
venn.get_label_by_id('110').set_text('\n'.join(swimming & diving - rowing))
venn.get_label_by_id('101').set_text('\n'.join(swimming & rowing - diving))
venn.get_label_by_id('011').set_text('\n'.join(diving & rowing - swimming))
venn.get_label_by_id('111').set_text('\n'.join(swimming & diving & rowing))

plt.title("Venn Diagram of Characteristics of Water Sports")

plt.show()
  • venn.get_label_by_id('XXX').set_text(...):获取特定部分的标签并设置其文本。每个标签通过'XXX'标识符表示,'1'表示该集合包含在该部分,'0'表示不包含。set_text方法用于设置显示的文本,'\n'.join(...)将每个集合中的特点用换行符分隔。
精细维恩图

本文作者:徐可


现在:


长按扫码关注:科研生信充电宝


10元赞赏本文,即喜欢作者~


即可直接解锁:


《跟着高分SCI学画图:GPT教你绘制维恩》对应资源哦~


看到这里你还不心动吗?


赶紧关注、转发、点赞、分享,领取你的专属福利吧~



好啦,以上就是今天推文的全部内容啦!


版权声明:本文内容由互联网用户自发贡献,版权归作者所有,本公众号不拥有所有权,也不承担相关法律责任。

如果您发现本公众号中有涉嫌抄袭的内容,欢迎发送邮件至:kysxcdb@163.com 进行举报,一经查实,本公众号将立刻删除涉嫌侵权内容。



科研生信充电宝
介绍科研;介绍统计;介绍生信;
 最新文章