R语言 如何在R中创建维恩图

R语言 如何在R中创建维恩图

维恩图是用于显示集合之间关系的图形表示。通过使用维恩图,人们可以强调集合元素之间的差异和相似性。维恩图也被称为逻辑图或集合图。我们用圆圈来表示集合,根据它们之间的关系,它们可以是相交的、重叠的或不相交的。我们可以用维恩图进行许多操作,但其中主要的是。联合、相交和互补。

  • 联合: 集合的联合是指所有集合的组合元素。
  • 交叉: 集合的交叉是指包含两个集合的共同元素的集合。当没有共同元素时,交集将给出一个空值。
  • 补集: 一个集合的补集是通用集合中除该集合本身以外的所有元素的集合。空集的补集就是普遍集。

在这篇文章中,我们将使用R编程语言来实现维恩图。

方法1:使用 “VennDiagram R包

我们首先需要安装和加载该包。

语法

install.packages(“VennDiagram”)

library(“VennDiagram”)

对于为成对集合或为三重集合或为任何数量的集合创建文氏图,在语法上只有轻微的区别。例如,我们使用关键字 “pairwise “来创建两个集合的维恩图,而对于三个集合,我们使用 “triple “关键字。

  • 对于两个集合。

语法。

grid.newpage()

draw.pairwise.Venn(area1,area2,cross.area,col,fill)

  • 对于三组。

语法 如下

grid.newpage()

draw.triple.venn(area1,area2, area3,n12,n23,n13, n123,category)

参数。

  • area1: 第一组的大小
  • area2: 第二组的大小
  • area3 :第三组的大小
  • cross.area : 集合之间的交叉点的大小。
  • n12: 第一组和第二组之间的交集的大小
  • n23: 第三组和第二组的交集大小
  • n13 :第一组和第三组的交集大小
  • n123: 所有三组之间的交集的大小
  • col: 给圆周的颜色的一个向量
  • fill: 赋予圆的面积以颜色的向量
  • category : 给出各组类别名称的字符串向量。

为了使用这个软件包创建一个维恩图,请在编辑器中安装并加载该软件包。 使用grid.newpage( )添加一个新的绘图页。然后,使用上述语法插入维恩图的数据。一组使用draw.single,两组使用draw.pairwise,三组使用draw.triple,四组使用draw.quad,五组使用quintuple。

例1 :

# load Venn diagram package
library("VennDiagram")
  
# move to new plotting page
grid.newpage()
  
# create pairwise Venn diagram
draw.pairwise.venn(area1=20, area2=45,cross.area=10,
                   category=c("Mango","Banana"),fill=c("Red","Yellow"))

输出

如何在R中创建维恩图?

例2 :

# load Venn diagram package
library("VennDiagram")
  
# move to new plotting page
grid.newpage()
  
# create Venn diagram with three sets
draw.triple.venn(area1=40, area2=15, area3=10, 
                 n12=5, n23=12, n13=4, n123=2, 
                 category=c("Science","Economics","English"),
                 col="Red",fill=c("Green","Yellow","Blue"))

输出

如何在R中创建维恩图?

例3 :

# load Venn diagram package
library("VennDiagram")
  
# move to new plotting page
grid.newpage()
  
# create Venn diagram with four sets
draw.quad.venn(area1=72, area2=86, area3=50, 
               area4 =52, n12=44, n23=38, n13=27, 
               n14= 32,n24=32, n34=20, n123=18, 
               n124=17, n234=13, n134=11, n1234=6, 
               category=c("Cricket","Football","Badminton","Table Tennis"),
               col="Green",fill=c("Red","Pink","Blue","Orange"),lty="dashed")

输出

如何在R中创建维恩图?

方法2:使用 “GGVENNR包

首先,我们需要安装这个包并加载它,以便使其可用。

install.packages(“ggvenn”)

library(“ggvenn”)

ggvenn作为一个独立的函数绘制维恩图。它支持将数据框和列表作为输入。

语法。

ggvenn (data, show_elements, show_percentage, fill_color, stroke_color, stroke_linetype)

参数。

  • data: 一个数据框或列表作为输入数据
  • show_elements: 显示集合元素而不是计数。
  • show_percentage: 显示每个集合的百分比。
  • fill_color: 圆圈的填充颜色
  • stroke_color: 绘制圆圈时的笔触颜色
  • stroke_linetype: 画圆时的线条类型

这种方法很简单,只需要传递要绘制的数据。

例1 :

# load ggvenn package
library("ggvenn")
  
# use list as input
A <-list('India'=c(1,3,5,7),'USA'=c(1,6,5))
  
# create venn diagram and display all the sets
ggvenn(A)

输出

如何在R中创建维恩图?

例2 :

# load ggvenn package
library("ggvenn")
  
# use data frame as input
M <-tibble(value=c(1,3,2,7,5),'TEA'=c(TRUE,FALSE,TRUE,FALSE,FALSE),
           'COFFEE'=c(TRUE,TRUE,FALSE,FALSE,TRUE),  
           'JUICE'=c(TRUE,FALSE,FALSE,TRUE,TRUE))
  
# create Venn diagram and display all sets
ggvenn(M)

输出

如何在R中创建维恩图?

例3 :

# load ggvenn package
library("ggvenn")
  
# use list as input
D <-list('Autumn'=c(2,3,1),'Winter'=c(4,7,9,1),
         'Summer'=c(3,7,2,5),'Spring'=c(2,5,9,1))
  
# creating venn diagram for four sets
# and displaying only two sets
ggvenn(D,c("Autumn","Spring"),show_percentage=FALSE,
       fill_color=c("red","orange"))

输出

如何在R中创建维恩图?

例4 :

# load ggvenn package
library("ggvenn")
  
# use list as input 
H <-list('Bus'=c(6,7,3),'Truck'=c(4,3,9),
         'Cycle'=c(10,3,2,8),'Car'=c(7,5,4,3))
  
# create customised venn diagram
ggvenn(H,show_elements=TRUE,stroke_color="Red",
       stroke_linetype="solid")

输出

如何在R中创建维恩图?

方法3:使用 “GPLOTS “R包

gplots包提供了最多五个集合的维恩图。 venn( ) 函数接受一个集合的列表作为参数,或者接受一个二进制矩阵,每一个集合有一列,表明每一个元素,每一行,与每一个集合的成员关系。 venn( ) 的主页列出了改变图形外观的选项,例如,可以省略集合的名称和改变尺寸。然而,有大量的机会来扩展这个包的功能。

像往常一样,第一步是安装和加载该软件包。

install.packages(“gplots”)

library(“gplots”)

我们只需将输入作为 venn( ) 函数的一个参数。

例1 :

# load gplots package
library("gplots")
  
# use list as input
x <-list('Plants'=c(6,7,8),'Animals'=c(7,8,3,4))
  
# create Venn diagram with two sets
venn(x)

输出

如何在R中创建维恩图?

例2 :

# load gplots package
library("gplots")
  
# creating venn diagram by passing 
# list as direct parameter
venn(list(YouTube=1:6,Netflix=3:8,Instagram=c(5,8:12)))

输出

如何在R中创建维恩图?

方法4:使用 “GGVENNDIAGRAM “R包

ggVennDiagram “返回可用于绘制Venn的结构化数据。利用这个包的第一步是安装和加载它。

install.packages(“ggVennDiagram”)

library(“ggVennDiagram”)

这里我们也将简单地在 ggVennDiagram( ) 函数中传递参数。

语法。

ggVennDiagram(data, label_alpha, category.names, show_intersect, set_color)

参数。

  • data: 以列表的形式输入
  • label_alpha: 去除区域标签的背景
  • category.names: 给予集合的名称。
  • show_intersect: 如果为真,文本可以被可视化。
  • set_color: 集合标签的颜色

为了使其发挥作用,首先安装并加载ggVennDiagram包,并将输入作为列表。然后,使用上面的语法来创建Venn Diagram,对于自定义Venn Diagram,使用其他参数。

例子1 :

# load ggVennDiagram Package
library("ggVennDiagram")
  
# use list as an input
x <-list('C++'=c(9,3,5,2),'Java'=c(7,8,4,3),
         'Python'=c(11,2,4,5,8),'Ruby'=c(3,8))
  
# creating Venn diagram and displaying 
# all sets
ggVennDiagram(x)

输出

如何在R中创建维恩图?

例2 :

# load ggVennDiagram Package
library("ggVennDiagram")
  
# use list as input
M <-list('Rose'=c(2,6),'Lily'=c(5,3,9,2),
         'Sunflower'=c(3,10,2),'Lotus'=c(5,7,8))
  
# creating Venn diagram with four sets
# but displaying only first two
ggVennDiagram(M[1:2],set_color="Red",label_alpha=0,
              show_intersect=FALSE)

输出

如何在R中创建维恩图?

例3 :

# load ggVennDiagram Package
library("ggVennDiagram")
  
# use list as input
D<-list(A=c(5,6,8),B=c(1,9,8,2),C=c(8,9,4,7,11))
  
# creating Venn diagram with three sets
# but displaying only last two
ggVennDiagram(D[2:3],category.names=c("BREAKFAST","LUNCH"))

输出

如何在R中创建维恩图?

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程