Rとウェブ解析:ベン図が手軽に描写できる!「VennDiagram」パッケージ


投稿日: Rの解析に役に立つ記事

ベン図はデータを解釈する時に役に立ちます。Rでベン図を作成するには色々な方法があります。参考としてVennDiagramパッケージを紹介します。VennDiagramパッケージはデータをリストで扱うことができるので便利です。ただ、比較データが4以上になると、プロット時にデータが左側から並んでくれませんので工夫が必要です。紹介コードではデータが左から並ぶように調整しています。


パッケージのインストール

install.packages("VennDiagram")

コマンド

library(VennDiagram)

###データ例の準備#####
A <- sample(1:1000, 100, replace = FALSE)
B <- sample(200:800, 100, replace = FALSE)
C <- sample(300:500, 100, replace = FALSE)
D <- sample(400:600, 100, replace = FALSE)
Data <- c(A, B, C, D)

#測定ポイントを4つと想定
Point <- sample(c("Point1", "Point2", "Point3", "Point4"),
                length(Data), replace = TRUE)

#データの作成
ProtData <- data.frame(Data, Point)
########

###ベン図をプロット#####
#ラベルの作成,降順に並び替え
Point <- sort(as.character(unique(ProtData[, 2]))) #測定ポイント行を入力
#測定ポイントが左から並ぶように調整
ifelse(length(Point) > 3, Point <- c(Point[1], Point[length(Point)],
                                     c(Point[2:(length(Point) - 1)])), invisible())

#ベン図プロットに使うリスト作成
VennList <- vector("list", length(Point)) 
names(VennList)  <- Point #ラベルの付与

for(n in seq(Point)){
  VennList[[n]] <- subset(ProtData[, 1], ProtData[,2] %in% Point[n]) #測定ポイント行を入力
}

###ベン図プロットの設定#####
#ベン図の塗り色を設定
FillCol <- c("dodgerblue", "goldenrod1", "darkorange1", "seagreen3", "orchid3")

#プロット
grid.newpage()
grid.draw(venn.diagram(
  x = VennList,
  fill = FillCol[1:length(Point)],
  filename = NULL))

出力

Rplot


少しでも、ウェブや実験の解析が楽になりますように!!

スポンサードリンク

おすすめコンテンツ


スポンサードリンク