この問題では、Venndiagramパッケージの使用を紹介して、2〜5元のVenn図を描きます。
ベン図、ベン図、ベン図、ベン図、ベン図とも呼ばれる、要素のコレクションの重複領域を表示するために使用される関係グラフです。グラフィックスとグラフィックス間のカスケード関係を反映しています。データ セット間の交差関係。
R 言語の現在の VennDiagram パッケージは、2 元から 5 元のベン図を描画するために使用できます。5 元を超える場合は、R 言語の別の R パッケージである UpsetR パッケージを使用する必要があります (図で示されます)。次号)。
1 データの準備
データ入力形式(xlsx形式):
2 R パッケージのロードとデータのインポート
#下载包#
install.packages("VennDiagram")
install.packages("openxlsx")
#加载包#
library (VennDiagram)
library(openxlsx)
#数值导入,可对数值进行配对
set1<-read.xlsx('C:/Rdata/jc/Venn.xlsx',sheet= "Sheet1",sep=',')
set2<-read.xlsx('C:/Rdata/jc/Venn.xlsx',sheet= "Sheet2",sep=',')
set3<-read.xlsx('C:/Rdata/jc/Venn.xlsx',sheet= "Sheet3",sep=',')
set4<-read.xlsx('C:/Rdata/jc/Venn.xlsx',sheet= "Sheet4",sep=',')
set5<-read.xlsx('C:/Rdata/jc/Venn.xlsx',sheet= "Sheet5",sep=',')
set6<-read.xlsx('C:/Rdata/jc/Venn.xlsx',sheet= "Sheet6",sep=',')
#数据转置,如果不转后头函数venn.diagram对矩阵数值不识别#
set1=t(set1)
set2=t(set2)
set3=t(set3)
set4=t(set4)
set5=t(set5)
set6=t(set6)
head(set)
#二元#
venn.diagram(x=list(set1,set2),
scaled = F, # 根据比例显示大小
alpha= 0.5, #透明度
lwd=1,lty=1,col=c('#FFFFCC','#CCFFFF'), #圆圈线条粗细、形状、颜色;1 实线, 2 虚线, blank无线条
label.col ='black' , # 数字颜色abel.col=c('#FFFFCC','#CCFFFF',......)根据不同颜色显示数值颜色
cex = 2, # 数字大小
fontface = "bold", # 字体粗细;加粗bold
fill=c('#FFFFCC','#CCFFFF'), # 填充色 配色https://www.58pic.com/
category.names = c("Set1", "Set2") , #标签名
cat.dist = 0.02, # 标签距离圆圈的远近
cat.pos = -180, # 标签相对于圆圈的角度cat.pos = c(-10, 10, 135)
cat.cex = 2, #标签字体大小
cat.fontface = "bold", # 标签字体加粗
cat.col='black' , #cat.col=c('#FFFFCC','#CCFFFF',.....)根据相应颜色改变标签颜色
cat.default.pos = "outer", # 标签位置, outer内;text 外
output=TRUE,
filename='C:/Rdata/jc/两组.png',# 文件保存
imagetype="png", # 类型(tiff png svg)
resolution = 400, # 分辨率
compression = "lzw"# 压缩算法
)
grid.draw(data)
図 1 バイナリ ベン
#三元#
venn.diagram(x=list(set1,set2,set3),
scaled = F, # 根据比例显示大小
alpha= 0.5, #透明度
lwd=1,lty=1,col=c('#FFFFCC','#CCFFFF',"#FFCCCC"), #圆圈线条粗细、形状、颜色;1 实线, 2 虚线, blank无线条
label.col ='black' , # 数字颜色abel.col=c('#FFFFCC','#CCFFFF',......)根据不同颜色显示数值颜色
cex = 2, # 数字大小
fontface = "bold", # 字体粗细;加粗bold
fill=c('#FFFFCC','#CCFFFF',"#FFCCCC"), # 填充色 配色https://www.58pic.com/
category.names = c("Set1", "Set2","Set3") , #标签名
cat.dist = 0.02, # 标签距离圆圈的远近
cat.pos = c(-120, -240, -180), # 标签相对于圆圈的角度cat.pos = c(-10, 10, 135)
cat.cex = 2, #标签字体大小
cat.fontface = "bold", # 标签字体加粗
cat.col='black' , #cat.col=c('#FFFFCC','#CCFFFF',.....)根据相应颜色改变标签颜色
cat.default.pos = "outer", # 标签位置, outer内;text 外
output=TRUE,
filename='C:/Rdata/jc/三组.png',# 文件保存
imagetype="png", # 类型(tiff png svg)
resolution = 400, # 分辨率
compression = "lzw"# 压缩算法
)
grid.draw(data)
図 2 三元ベン
#四元#
venn.diagram(x=list(set1,set2,set3,set4),
scaled = F, # 根据比例显示大小
alpha= 0.5, #透明度
lwd=1,lty=1,col=c('#FFFFCC','#CCFFFF',"#FFCCCC","#CCCCFF"), #圆圈线条粗细、形状、颜色;1 实线, 2 虚线, blank无线条
label.col ='black' , # 数字颜色abel.col=c('#FFFFCC','#CCFFFF',......)根据不同颜色显示数值颜色
cex = 2, # 数字大小
fontface = "bold", # 字体粗细;加粗bold
fill=c('#FFFFCC','#CCFFFF',"#FFCCCC","#CCCCFF"), # 填充色 配色https://www.58pic.com/
category.names = c("Set1", "Set2","Set3","Set4") , #标签名
cat.dist = c(0.2, 0.2, 0.1, 0.1), # 标签距离圆圈的远近
cat.pos = c(-20, 20, -20, 20), # 标签相对于圆圈的角度cat.pos = c(-10, 10, 135)
cat.cex = 2, #标签字体大小
cat.fontface = "bold", # 标签字体加粗
cat.col=c('#FFFFCC','#CCFFFF',"#FFCCCC","#CCCCFF"), #cat.col=c('#FFFFCC','#CCFFFF',.....)根据相应颜色改变标签颜色
cat.default.pos = "outer", # 标签位置, outer内;text 外
output=TRUE,
filename='C:/Rdata/jc/四组.png',# 文件保存
imagetype="png", # 类型(tiff png svg)
resolution = 400, # 分辨率
compression = "lzw"# 压缩算法
)
grid.draw(data)
図 4 第四紀のベン
#五元#
venn.diagram(x=list(set1,set2,set3,set4,set5),
scaled = F, # 根据比例显示大小
alpha= 0.5, #透明度
lwd=1,lty=1,col=c('#FFFFCC','#CCFFFF',"#FFCCCC","#CCCCFF", "#CCFFCC"), #圆圈线条粗细、形状、颜色;1 实线, 2 虚线, blank无线条
label.col ='black' , # 数字颜色abel.col=c('#FFFFCC','#CCFFFF',......)根据不同颜色显示数值颜色
cex = 2, # 数字大小
fontface = "bold", # 字体粗细;加粗bold
fill=c('#FFFFCC','#CCFFFF',"#FFCCCC","#CCCCFF", "#CCFFCC"), # 填充色 配色https://www.58pic.com/
category.names = c("Set1", "Set2","Set3","Set4","Set5") , #标签名
cat.dist = c(0.2, 0.2, 0.2, 0.2, 0.2), # 标签距离圆圈的远近
cat.pos = c(0, -10, 240, 120, 20), # 标签相对于圆圈的角度cat.pos = c(-10, 10, 135)
cat.cex = 2, #标签字体大小
cat.fontface = "bold", # 标签字体加粗
cat.col=c('#FFFFCC','#CCFFFF',"#FFCCCC","#CCCCFF", "#CCFFCC"), #cat.col=c('#FFFFCC','#CCFFFF',.....)根据相应颜色改变标签颜色
cat.default.pos = "outer", # 标签位置, outer内;text 外
output=TRUE,
filename='C:/Rdata/jc/五组.png',# 文件保存
imagetype="png", # 类型(tiff png svg)
resolution = 400, # 分辨率
compression = "lzw"# 压缩算法
)
grid.draw(data)
図4 5元ベン
#总结#
install.packages("VennDiagram")
install.packages("openxlsx")
library (VennDiagram)
library(openxlsx)
#数值导入,可对数值进行配对
set1<-read.xlsx('C:/Rdata/jc/Venn1.xlsx',sheet= "Sheet1",sep=',')
set2<-read.xlsx('C:/Rdata/jc/Venn1.xlsx',sheet= "Sheet2",sep=',')
set3<-read.xlsx('C:/Rdata/jc/Venn1.xlsx',sheet= "Sheet3",sep=',')
set4<-read.xlsx('C:/Rdata/jc/Venn1.xlsx',sheet= "Sheet4",sep=',')
set5<-read.xlsx('C:/Rdata/jc/Venn1.xlsx',sheet= "Sheet5",sep=',')
set6<-read.xlsx('C:/Rdata/jc/Venn1.xlsx',sheet= "Sheet6",sep=',')
#数据转置,如果不转后头函数venn.diagram对矩阵数值不识别#
set1=t(set1)
set2=t(set2)
set3=t(set3)
set4=t(set4)
set5=t(set5)
set6=t(set6)
#全部代码注释#
venn.diagram(x=list(set1,set2,....),
scaled = F, # 根据比例显示大小
alpha= 0.5, #透明度
lwd=1,lty=1,col=c('#FFFFCC','#CCFFFF'), #圆圈线条粗细、形状、颜色;1 实线, 2 虚线, blank无线条
label.col ='black' , # 数字颜色abel.col=c('#FFFFCC','#CCFFFF',......)根据不同颜色显示数值颜色
cex = 2, # 数字大小
fontface = "bold", # 字体粗细;加粗bold
fontfamily = "Times New Roma", # 字体
fill=c('#FFFFCC','#CCFFFF'), # 填充色 配色https://www.58pic.com/
category.names = c("Set1", "Set2") , #标签名
cat.dist = 0.02, # 标签距离圆圈的远近
cat.pos = -180, # 标签相对于圆圈的角度cat.pos = c(-10, 10, 135)
cat.cex = 2, #标签字体大小
cat.fontface = "bold", # 标签字体加粗
cat.col='black' , #cat.col=c('#FFFFCC','#CCFFFF',.....)根据相应颜色改变标签颜色
cat.default.pos = "outer", # 标签位置, outer内;text 外
cat.fontfamily = "Times New Roma", # 字体
xrotation = 2, # 1 2 3 旋转确定大打头数据集
filename='C:/Rdata/jc/两组.png',# 文件保存
output=TRUE,
imagetype="png", # 类型(tiff png svg)
resolution = 400, # 分辨率
compression = "lzw", # 压缩算法
ext.text = T # 增加指示线和标签
ext.percent = c(0.1,0.1,0.1), # 出现指示线和标签的条件
ext.dist = c(0.01,0.01),
ext.length = 0.8)
)
grid.draw(data)
さて、今回の共有はこれで終わりです。
公式アカウントに従って「venn」を送信して、完全なコードとデモデータパッケージを取得します