ベン図を可視化する方法

複数のカテゴリーがあってそれぞれの近さを調べたい時にベン図(Venn Diagram)というタイプのチャートを使うことで、直感的にカテゴリー同士の関係を可視化することができます。

ベン図を説明するために、過去70年間の国連総会での決議の国ごとの投票内容のデータから、それぞれの国がどれだけ近いのかを見ていきましょう。

ベン図を可視化をする際に、VennDiagramというパッケージを使ってベン図を作成することができます。

一方で、VennDiagramパッケージでベン図を可視化すると、値の大きさに違いがあっても、円のサイズが同じになってしまいます。

さらには、円の重なり具合が違ったとしても、全て同じ度合いで表現がされてしまいます。

そこで、このノートでは上記の2つの欠点を解消し、円の大きさ(件数)や重なり具合を適切に表現できる、eulerrというパッケージを使ってベン図を可視化していきましょう。

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パッケージが提供する関数の詳細については、こちらを参照ください。

Export Chart Image
Output Format
PNG SVG
Background
Set background transparent
Size
Width (Pixel)
Height (Pixel)
Pixel Ratio