跟着高分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'}
swimming
、diving
、rowing
:定义三个集合,每个集合包含对应水上运动的特点。
绘制维恩图
# 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 进行举报,一经查实,本公众号将立刻删除涉嫌侵权内容。