維恩圖用于展示在不同的事物群組(集合)之間的數學或邏輯聯系,尤其适合用來表示集合(或)類之間的“大緻關系”,它也常常被用來幫助推導(或理解推導過程)關于集合運算(或類運算)的一些規律。通常每個集合以一個圓圈表示。每個集合都是一組具有共同之處的物件或數據。當多個圓圈(集)相互重疊時,稱為交集 (intersection),裡面的數據同時具有重叠集中的所有屬性。
——百度百科、數據可視化工具目錄
今天我們來使用R語言繪制一下維恩圖,看看到底有多簡單!
軟件介紹[軟件1]:R (Version 4.1.2)
[軟件2]:RStudio(Version 1.4.1106)
圖文教程1.首先一上來就是進行安裝及其加載包
install.packages("VennDiagram")
library(VennDiagram)
2.看一下該繪圖函數的介紹
3.首先,我們生成一組數據,進行維恩圖的繪制
set1 <- paste(rep("word_" , 200) , sample(c(1:1000) , 200 , replace=F) , sep="")
set2 <- paste(rep("word_" , 200) , sample(c(1:1000) , 200 , replace=F) , sep="")
set3 <- paste(rep("word_" , 200) , sample(c(1:1000) , 200 , replace=F) , sep="")
set4 <- paste(rep("word_" , 200) , sample(c(1:1000) , 200 , replace=F) , sep="")
set5 <- paste(rep("word_" , 200) , sample(c(1:1000) , 200 , replace=F) , sep="")
4.為了方便大家讀取自己的數據,我們可以将數據寫進Excel,然後再讀取進來,那麼首先我們将數據做成數據框
Venn_data <- data.frame(set1,
set2,
set3,
set4,
set5)
5.然後加載可以讀取/寫成Excel的包,将數據寫成Excel文件
library(openxlsx)
write.xlsx(Venn_data,"Venn_data.xlsx")
6.使用自己的數據的同學,可以直接從這一步開始:讀取數據
Venn_data <- read.xlsx("Venn_data.xlsx",
sheet = 1)
7.使用attach将該數據讀取到R中,方便直接使用列名稱
attach(Venn_data)
8.使用函數繪圖
venn.diagram(
x = list(set1, set2, set3,set4, set5),
category.names = c("set1", "set2", "set3","set4","set5"),
filename = 'Venn_diagramm.png',
output=TRUE)
9.然後我們對維恩圖的參數進一步調整
venn.diagram(
x = list(set1, set2, set3,set4, set5),
category.names = c("set1", "set2", "set3","set4","set5"),
filename = 'Venn_diagramm.png',
output=TRUE,
# 輸出圖片要求,包括圖片類型,高和寬,分辨率,壓縮等方式
imagetype="png" ,
height = 1000 ,
width = 1000 ,
resolution = 300,
compression = "lzw",
# 圓環的調節,邊的寬度,是否需要虛線,以及填充的顔色
lwd = 2,
lty = 'blank',
fill = c("#EE3B3B", "#6495ED", "#8B7355", "#EEC900", "#008B8B"))
10.有些字體沒顯示出來,再進行調整
venn.diagram(
x = list(set1, set2, set3,set4, set5),
category.names = c("set1", "set2", "set3","set4","set5"),
filename = 'Venn_diagramm.png',
output=TRUE,
# 輸出圖片要求,包括圖片類型,高和寬,分辨率,壓縮等方式
imagetype="png" ,
height = 1000 ,
width = 1000 ,
resolution = 300,
compression = "lzw",
#圓環的調節,邊的寬度,是否需要虛線,以及填充的顔色
lwd = 2,
lty = 'blank',
fill = c("#EE3B3B", "#6495ED", "#8B7355", "#EEC900", "#008B8B"),
# 對圖上的數字進行調節,包括大小,是否加粗,以及字體
cex = .6,
fontface = "bold",
fontfamily = "sans",
# 對每個集合的名字進行調節,包括字體大小,是否加粗,在外部,以及位置,字體及其顔色
cat.cex = 0.7,
cat.fontface = "bold",
cat.default.pos = "outer",
cat.pos = c(0,-45,240,135,45),
cat.dist = c(0.2,0.2,0.2,0.2,0.2),
cat.fontfamily = "sans",
cat.col=c("#EE3B3B", "#6495ED", "#8B7355", "#EEC900", "#008B8B"))
11.這麼詳細的教程,趕緊來學學吧!
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!