複数のカテゴリーがあってそれぞれの近さを調べたい時にベン図(Venn Diagram)というタイプのチャートを使うことで、直感的にカテゴリー同士の関係を可視化することができます。
ベン図を説明するために、過去70年間の国連総会での決議の国ごとの投票内容のデータから、それぞれの国がどれだけ近いのかを見ていきましょう。
ベン図を可視化をする際に、VennDiagramというパッケージを使ってベン図を作成することができます。
一方で、VennDiagramパッケージでベン図を可視化すると、値の大きさに違いがあっても、円のサイズが同じになってしまいます。
さらには、円の重なり具合が違ったとしても、全て同じ度合いで表現がされてしまいます。
そこで、このノートでは上記の2つの欠点を解消し、円の大きさ(件数)や重なり具合を適切に表現できる、eulerrというパッケージを使ってベン図を可視化していきましょう。
まず、eulerrのRパッケージをインストールします。プロジェクトメニューから「Rパッケージの管理」を選択します。
すると、Rパッケージの管理のダイアログが開くので、「パッケージをインストール」を選択し、「eulerr」と入力してインストールボタンをクリックします。
「eulerrのインストールに成功しました」と表示されたら、インストールは完了です。
Dataverseの国連総会投票データページにあるデータを元に、国連決議へのアメリカ、カナダ、ロシアの投票結果をこちらにまとめています。
国連決議の投票結果のデータのページにアクセスしたら、ダウンロードボタンをクリックして、EDFファイルをダウンロードします。
ダウンロードが完了したら、プロジェクトの中でダウンロードしたEDFファイルをドラッグ&ドロップして、インポートします。
EDFファイルをインポートすると、vote_eulerというデータフレームが追加されます。すでに加工済みの結果となり、「CAN」、「RUS」、「USA」はYesと回答した件数で、「USA&CAN」はカナダとアメリカで同じ投票結果になっている件数となります。
それでは、さっそくベン図を作成してみましょう。レポートの右横にある+ボタンを押して、「ノートを作成」をクリックします。
するとノートのウィンドウが開きます。
ベン図を可視化するためにはRスクリプトを書く必要があるため、ノートのプラスボタンから「Rスクリプト」を選択します。
これにより、ノートにRスクリプトのコードブロックが追加されました。
このRスクリプトの中に、下記のスクリプトをコピー&ペーストしてください。
library(eulerr)
# vote_eulerの1行目の数値を取得し、それに対応する名前をセットして、euler関数に渡す
data <- euler(setNames(as.numeric(vote_euler[1, ]), names(vote_euler)))
# プロット時に使用する色を定義
col <- c( "#E56997", "#FBC740", "#66D2D6")
plot(data,
quantities = TRUE, # 数量のラベルの表示
fills = list(fill = col, alpha = 0.8), # 塗りつぶしの色と透明度を指定
edges = "black", # エッジの色を黒に指定
labels = list(fontsize = 12)) # ラベルのフォントサイズを指定
Rスクリプトを貼り付けることができたら、ノートの左上の「プレビュー」ボタンをクリックします。
プレビューすると、アメリカ、カナダ、ロシアの3カ国の関係性を表すベン図が表示されます。
eulerrパッケージの描くベン図は、円の大きさや重なり具合も実際のデータの値に沿って可視化されるようになっています。
eulerrパッケージが提供する関数の詳細については、こちらを参照ください。