4
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

R でcsvファイルのデータを読み込んでVenn diagram (ベン図)を作成した例(備忘録)

Last updated at Posted at 2020-02-09

##背景##
学会の発表資料作成でRでVenn図を書かなければならなかったのですが、調べても自分がやりたい「csvファイルのデータを読み込んでVenn図を書く」という方法について、ドンピシャの情報がなかったので、備忘録として投稿します。

##csvファイルのデータの準備##
まずは実験や観察などの結果をまとめたcsvファイルを作成します。
この時に注意しなければならないのが、Venn図では各条件(目的変数)における説明変数の頻度を視覚した図であるため、列方向に目的変数が、行方向には各説明変数の "名称" が情報として必要となります。

私は実験結果をExcelの表でまとめてピボットテーブルで結果をまとめる際に、説明変数を1列目入れて、各説明変数のところにチェックや数字、属性の記号などを使っていたのですが、そのままで読み込もうとしていても、まともなVenn図ができない状況でした。

Venn図に読み込むためには、以下の操作でExcel内でデータを成形して、csv形式に変えました。

  1. Excelのフィルターなどで目的変数で空欄を除外する
  2. 1列目の説明変数の2行目以降で表示されている説明変数をコピーして、目的変数にペーストする
  3. 上記の1と2を説明変数で繰り返す
  4. 全ての説明変数で作業が終わったら、フィルターを解除して1列目(説明変数)を削除する

この作業が終わったら、csv形式でファイルを保存します。
保存先はRのWorking directly(Rのスクリプトなどがあるところ)に保存します。

##Rでスクリプト作成##
以下の点に注意してスクリプトを作成します。

###Venn Diagramパッケージのインストールとライブラリ起動###

install.packages("VennDiagram")
library(VennDiagram)

###csvファイルの読み込み###

  • csvファイルをtable形式で読み込む
  • 説明変数の行を削除する
  • 空欄をNAに変換する
fname <- "Venn_example.csv"
venn_list <- read.table(fname, skip=1, sep=",", na.strings=c(''))

###説明変数を格納する変数を作成###

以下のように1列目、2列目、・・・の情報を格納する変数を作成する
(Venn diagram関数では5つまでの制限があるようです)

AA <- venn_list[,1]
BB <- venn_list[,2]
CC <- venn_list[,3]

###変数内のNAの値を除去する###
以下の操作でNAの値を除去しないと、NAという情報がVenn図に掲載されてしまい、数が合わなくなります。

AAA <- AA[!is.na(AA)]
BBB <- AA[!is.na(BB)]
CCC <- AA[!is.na(CC)]

###リストを作成###
Venn diagram関数ではリスト形式しか受け付けないようです。
結構ここでハマってしまいましたので、注意してください。
この際、Venn図に表す文字列をイコールの左側(リストのタイトル)に入れるのですが、欲張って長い文字数を入れるとエラーでVenn図が描かれませんので注意が必要です。

VennExample <- list(A = AAA, B = BBB, C = CCC)

###いよいよVenn図作成###
いよいよVenn図作成です。ちゃんと変数の設定などを行えば、綺麗な図を描いてくれます :relaxed:

venn.diagram(VennExample, filename = "venn_test.png",fill=c(1,2,3), alpha=0.4, lty=2)

ここで、Filenameで出力先を設定することが必要になります。
試してみたところ、png形式の他にtiff形式やjpeg形式でも出力が可能です。

オプションのalphaは透過度を、fillは塗りつぶす色のオプションになります。

以下の参考のリンク先にvenn.diagram関数のオプションが紹介されています。
https://data-science.gr.jp/implementation/ida_r_venn_diagram.html

4
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?