Как создать диаграмму Венна в R?

Опубликовано: 13 Сентября, 2022

Диаграмма Венна — это графическое представление множеств, используемое для отображения отношений между ними. С помощью диаграммы Венна можно выделить как различия, так и сходства между элементами множеств. Диаграмма Венна также известна как логическая диаграмма или диаграмма множеств. Мы используем круги для представления наборов, которые могут быть пересекающимися, перекрывающимися или непересекающимися, в зависимости от отношений между ними. Существует ряд операций, которые мы можем выполнять с помощью диаграммы Венна, но основными из них являются: объединение, пересечение и дополнение.

  • Союз: Союз наборов относится к объединенным элементам всех наборов.
  • Пересечение: Пересечение наборов — это набор элементов, содержащий общий элемент обоих наборов. Когда общего элемента нет, пересечение даст нулевое значение.
  • Дополнение: Дополнением множества является множество всех элементов универсального множества, кроме самого множества. Дополнением пустого множества является универсальное множество.

В этой статье мы собираемся реализовать диаграмму Венна, используя язык программирования R.

Способ 1: использование «пакета VennDiagram R»

Сначала нам нужно установить и загрузить пакет:

Синтаксис:

install.packages(“VennDiagram”)               

library(“VennDiagram”)                        

Для создания диаграммы Венна для парных наборов, для тройных наборов или для любого количества наборов существует лишь небольшая разница в синтаксисе. Например, мы используем ключевое слово «попарно» для создания диаграммы Венна с двумя наборами, а для трех наборов мы используем ключевое слово « тройной» .

  • Для двух наборов:

Syntax:

    grid.newpage()                                        

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

  • На три комплекта:

Syntax:

    grid.newpage()                                        

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

Parameters:

  • area1: The size of first set
  • area2: The size of second set
  • area3: The size of third set
  • cross.area: The size of the intersection between the sets
  • n12: The size of intersection between the first and second set
  • n23: The size of intersection between the third and second set
  • n13: The size of intersection between the first and third set
  • n123: The size of intersection between all the three sets
  • col: A vector giving the colours of the circle’s circumference
  • fill: A vector giving the colours to circle’s area
  • category: A vector of strings giving the category names of the sets

Чтобы создать диаграмму Венна с помощью этого пакета, установите и загрузите пакет в редакторе. Добавьте новую страницу построения с помощью grid.newpage(). Затем вставьте данные для диаграммы Венна, используя приведенный выше синтаксис. Для одного набора используйте draw.single, для двух наборов используйте draw.pairwise, для трех наборов используйте draw.triple, для четырех наборов используйте draw.quad и для пяти наборов используйте quintuple.

Пример 1:

R




# 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"))

Выход:

Пример 2:

R




# 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"))

Выход:

Пример 3:

R




# 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")

Выход:

Способ 2: Использование пакета «GGVENN» R

Во-первых, нам нужно установить этот пакет и загрузить его, чтобы его можно было использовать.

install.packages(“ggvenn”)              

library(“ggvenn”)                       

ggvenn строит диаграмму Венна как независимую функцию. Он поддерживает как фрейм данных, так и список в качестве входных данных.

Syntax:

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

Parameters:

  • data: A data frame or list as input data
  • show_elements: Shows set elements instead of count
  • show_percentage: Show percentage for each set
  • fill_color: Fill colours in circles
  • stroke_color: Stroke colour for drawing circles
  • stroke_linetype: Line type for drawing circles

Этот подход прост, и нужно передать только данные, которые нужно нанести на график.

Пример 1:

R




# 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)

Выход:

Пример 2:

R




# 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)

Выход:

Пример 3:

R




# 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"))

Выход:

Пример 4:

R




# 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")

Выход:

Способ 3: Использование пакета R «GPLOTS»

Пакет gplots предоставляет диаграммы Венна для пяти наборов. Функция venn() принимает либо список наборов в качестве аргумента, либо принимает двоичную матрицу, по одному столбцу на набор, указывающую для каждого элемента, по одному на строку, принадлежность к каждому набору. На главной странице venn() перечислены параметры для изменения внешнего вида графиков, например, имена наборов могут быть опущены, а размеры изменены. Тем не менее, есть широкие возможности для расширения функциональности этого пакета.

Как обычно, первым шагом будет установка и загрузка пакета:

install.packages(“gplots”)                    

library(“gplots”)                             

Мы просто передаем ввод как параметр в функцию venn() .

Пример 1:

R




# 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)

Выход:

Пример 2:

R




# 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)))

Выход:

Способ 4: Использование пакета R «GGVENNDIAGRAM»

«ggVennDiagram» возвращает структурированные данные, которые можно использовать для построения диаграммы Венна. Первым шагом для использования этого пакета является его установка и загрузка.

install.packages(“ggVennDiagram”)                                   

library(“ggVennDiagram”)                                   

Здесь также мы просто передадим параметр в функцию ggVennDiagram() .

Syntax:

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

Parameters:

  • data: Input in form of list
  • label_alpha: Remove the background of region labels
  • category.names: Give names to sets.
  • show_intersect: If true, text can be visualized
  • set_color: Color of set labels

Чтобы это работало, сначала установите и загрузите пакет ggVennDiagram и введите данные в виде списка. Затем используйте приведенный выше синтаксис для создания диаграммы Венна, а для настройки диаграммы Венна используйте другие параметры.

Пример 1:

R




# 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)

Выход:

Пример 2:

R




# 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)

Выход:

Пример 3:

R




# 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"))

Выход: