円形コードダイアグラムを作成する方法

こちらのノートでは、円形コードダイアグラムを作成する方法を紹介いたします。

円形コードダイアグラム(Chord Diagram)とは、複数のカテゴリー間の関係性や流れの大きさを、円形のレイアウトで表現したチャートです。弧の太さが大きいほど、そのカテゴリー間の移動や遷移の量が多いことを示します。

人の移動データや製品の流通経路など、カテゴリー間の流れを直感的に把握したいときに特に有効です。ただし、2要素間の関係の強さを表すチャートであり、方向の情報は持たない点に注意が必要です。

円形コードダイアグラムに必要なデータ

円形コードダイアグラムを作成するには、1行が移動記録を表すデータが必要です。

上記の具体的な例として、今回は1行が1人のアンケートの回答者を表し、列には居住地の移動元及び移動先、移動年や移動理由の情報を持つデータを使っていきます。

なお、データはこちらからダウンロードいただけます。

circlizeライブラリをインストールする

円形コードダイアグラムの作成には、Rパッケージのcirclizeを使用します。まだインストールされていない場合は、以下の手順でインストールします。

プロジェクトメニューから、「Rパッケージの管理」を選択します。

すると、「Rパッケージの管理」のダイアログが開くので、「パッケージをインストール」を選択し、テキストボックスにcirclizeと入力してインストールボタンをクリックします。

「circlizeのインストールに成功しました。」というメッセージが表示されたら、インストールは完了です。

円形コードダイアグラムを作成する

カスタム (R) チャートで円形コードダイアグラムを作成する

チャート・ビューからカスタム (R) チャートを使うと、Rのコードを貼り付けるだけで円形コードダイアグラムを作成できます。

そのため、チャート・ビューに移動し、チャートタイプの一覧から「カスタム (R) チャート」を選択します。

すると、Rスクリプトを入力するテキストエディタが表示されます。

Rスクリプトを貼り付けて実行する

続いて、以下のスクリプトをテキストエディタに貼り付けてください。${DATA} はExploratoryが現在アクティブなデータフレームを自動的に参照する専用の記法です。

library(showtext)
library(circlize)

showtext_auto() # これを実行するだけで日本語が通るようになります
chordDiagram(${DATA}[, c("移動元の列", "移動先の列")], transparency = 0.5)
# 方向の情報は持たないため、移動元の列と移動先の列は逆でも問題ありません。

スクリプトを貼り付けたら「ビュー」ボタンをクリックすると、円形コードダイアグラムがプレビューに表示されます。

ノートやダッシュボードにチャートを挿入する

チャート・ビューで作成したチャートは、チャートのタイプを問わずダッシュボードやノートに配置することが可能です。

配置したチャートは他のチャートと同じようにダッシュボードを実行すると表示されます。

ノートやダッシュボードで直接円形コードダイアグラムを作成する

カスタム (R) チャートと同じRスクリプトを使って、Exploratoryのノートやダッシュボード上でも直接円形コードダイアグラムを作成することができます。

  • ノートやダッシュボードのコンテンツの追加メニューの紹介 - リンク

ノートの編集画面や、ダッシュボードのテキストパネルのコンテンツの追加ボタンから「R スクリプト」を選択すると、Rのコードを入力するためのコードブロックが表示されます。

Rスクリプトの入力ダイアログが表示されたら、以下のコードを貼り付けます。

カスタム (R) チャートとの違いは、${DATA} の代わりにデータフレーム名を直接指定する点のみです。

library(showtext)
library(circlize)

showtext_auto() # これを実行するだけで日本語が通るようになります
chordDiagram(データフレーム名[, c("移動元の列", "移動先の列")], transparency = 0.5)
# 方向の情報は持たないため、移動元の列と移動先の列は逆でも問題ありません。

プレビュー・ボタンをクリックすることで、コードの実行結果を確認できます。

よくある質問

Q: 円形コードダイアグラムを作成すると、simpleError in eval(substitute(expr), data, enclos = parent.frame()): object '列名' not found というエラーが出る

このエラーは、指定した列名がデータフレームに存在していない、あるいはデータフレーム名の指定の仕方に問題がある可能性があります。

データフレーム名が数値(例: 99)である場合、Rがそれを数値そのものとして解釈してしまうことがあります。その場合は、データフレーム名をバッククオート(`)で囲うことでエラーを回避できます。

参考情報

  • カスタム (R) チャートの使い方 - リンク
Export Chart Image
Output Format
PNG SVG
Background
Set background transparent
Size
Width (Pixel)
Height (Pixel)
Pixel Ratio