R言語でベン図を描く

 ベン図は数学の「集合」で出てくる図。

 R言語で描画してみる。まずVennDiagramパッケージのインストール。

install.packages("VennDiagram")

 VennDiagramパッケージの有効化。

library(VennDiagram)

 例えば集合A:100以下2の倍数。

a <- c(1:50)
aa <- 2*a

 集合B:100以下3の倍数。

b <- c(1:33)
bb <- 3*b

 データセット。

data <- list(2倍 = aa,3倍 = bb)

 描画 - ファイル保存。
 imagetypeで指定しないとtif保存になる。

venn.diagram(data,fill=c(2,3),filename="venn1.png",imagetype="png")

 要素の個数が表示される。要素自体が表示されるわけではない。
 n(A)=50
 n(B)=33
 n(A∩B)=16 ・・・ 積集合(共通)
 n(A∪B)=67 ・・・ 和集合(合併)

 要素の個数に応じて円の大きさが変わる。
 同じ大きさにしたい場合、scaled=Fとする。

venn.diagram(data,fill=c(2,3),scaled=F,filename="venn1.png",imagetype="png")

集合3以上

  集合3

e <- c("Mitsu1","Danger")
f <- c("Mitsu2","Danger")
g <- c("Mitsu3","Danger")
data2 <- list(密1 = e,密2 = f,密3 = g)
venn.diagram(data2,fill = c("yellow","orange","red"),alpha = c(0.5,0.5,0.5),filename="venn2.svg",imagetype="svg")

 alphaは透過度。

 svgで保存して線、ラベルなど改変
 ⇒ 最近よく見かける図に似た図

 長時間密閉、密集、そして
 密談
ではなく会話・発声。密接は何か違う感じ。

 「密閉∩密集∩会話・発声」 ⇒ オーバー何ちゃら爆発。

 まあ無駄口減らせば感染リスクも減るだろう。

  集合5 -おまけ-

h <- c(11,12)
i <- c(12,22,23)
j <- c(23,33,34)
k <- c(34,44,45)
l <- c(45,55)
data3 <- list(青 = h,黄 = i,黒 = j,緑 = k,赤 = l)
venn.diagram(data3,fill = c("blue","yellow","black","green","red"),filename="venn3.png",imagetype="png")

 全然五輪じゃなかった。

R
スポンサーリンク
ふシゼン
タイトルとURLをコピーしました