ベン図ベン図Rにてベン図を描く。Rにはベン図を描くライブラリーがいくつか存在するが、"VennDiagram"が最もきれいにベン図を描ける。別のライブラリー"gplots"でも簡単にベン図を描くことができる。"VennDiagram"を用いたベン図の描き方について。ライブラリー"VennDiagram"を以下のコマンドにてインストールし読み込む。インストールしている場合は、1行目のコマンドは不要。repos="http://cran.ism.ac.jp/")2|$library(VennDiagram)以下のような2つのファイル"foo.txt"および"bar.txt"からベン図を作成する。それぞれのファイルには","で区切られた英単語が数十個ずつ格納されている。writesこれらのファイルがあるディレクトリに移動し、以下のコマンドにて、ファイルの内容をそれぞれ変数"foo"および"bar"に格納する。"sep"は何によって値が区切られているかを指定するオプションである。","で値が区切られている場合はsep=","と指定する。"strip.white"はスペース等の空白を削除するためのオプションである。ファイルの内容の読み込みはread.table("clipboard")でも便利である。クリップボードからデータを読み込める。1|$foo=as.matrix(read.table("foo.txt",sep=",",strip.white=T))2|$bar=as.matrix(read.table("bar.txt",sep=",",strip.white=T))このように読み込んだデータから以下のコマンドにてリストを作成し、変数"data"に格納する。"BAR"と名付ける。1|$data=list(FOO=foo,BAR=bar)以上で作成したリスト"data"から以下のコマンドにてベン図を作成する。コマンド"venn.diagram"は作成したベン図を画像としてカレントディレクトリに吐き出す。そのときのファイル名を指定するのが"filename"オプションである。"fill"では各データセットの領域を塗りつぶす色を指定できる。データセットを2つ用いた場合はc(数字1,数字2)で指定する。3つのデータセットからベン図を描いたときはc(数字1,数字2,数字3)となる。"lty"は各データセット領域の枠線を指定するオプションである。基本的には"fill"と同様に指定するが、以下のように"lty=数字"のように唯一の数字を指定した場合は全データセットで同じ枠線が使用される。"scaled"は各データセットの領域の面積をデータ数に応じて表示させるオプションである。"scaled=F"とした場合は各データセット領域の面積は等しく表示される。53)のフォントサイズを指定するオプションである。2つデータセットからベン図を描くと3つの領域ができるので"cex=c(2,2,2)"のように3つの数字を指定する。各カテゴリー名について0から360度の範囲で指定できる。"cat.dist"はカテゴリー名の領域からの距離を指定するオプションである。負の値を入力するとカテゴリー名は円の内に表示される。"cat.cex"はカテゴリー名のフォントサイズの指定である。その他のオプションは以下にまとめた。cat.cex=c(1.2,1.2))以下のようにベン図が描かれる。ここで、領域の色および枠線を変え、"scaled"を"TRUE"にする以下のコマンドを打つ。cat.cex=c(1.2,1.2))以下のように表示が変わる。領域の色と枠線のスタイルが変わり、データセットの大きさを反映した円の大きさになる。オプションには以下のようなものがある。(T)inverted=Theight作成されるベン図画像の高さの指定height=3000width作成されるベン図画像の幅の指定width=3000resolution作成されるベン図画像の解像度の指定resolution=500また、当然ながら3つ以上のデータセットに対してもベン図を描ける。以下のような、"baz.txt"を加えてベン図を描く。whichまず、以下のコマンドにて変数"baz"に"baz.txt"の内容を読み込む。1|$baz=as.matrix(read.table("baz.txt",sep=",",strip.white=T))更に、上と同様にリストを作成する。1|$data=list(FOO=foo,BAR=bar,BAZ=baz)最後に、以下のコマンドでベン図を描く。lty=2)結果は以下のようになる。ベン図は上とは別のライブラリー"gplots"でも描くことができる。以下のコマンドにて"gplots"をインストールし読み込む。"baz"に格納する。1|$foo=as.matrix(read.table("foo.txt",sep=",",strip.white=T))2|$bar=as.matrix(read.table("bar.txt",sep=",",strip.white=T))3|$baz=as.matrix(read.table("baz.txt",sep=",",strip.white=T))以上の変数からリストを作成し、変数"data"に格納する。"BAZ"と名付ける。1|$data=list(FOO=foo,BAR=bar,BAZ=baz)このように作成したリストから、以下のようにコマンドを打つことでベン図を描くことができる。1|$venn(data)結果は以下のようになる。"venn.diagram"と比べてシンプルなベン図が描かれる。