ggsankey 関数を使ったサンキーダイアグラム作成
UB3/informatics/r/sankey_ggsankey
このページの最終更新日: 2025/01/05広告
概要: サンキーダイアグラムとは
サンキーダイアグラム Sankey diagram とは、各工程間の流量を示す以下のような図のことである。sanketNetwork 関数 のページにもう少し基本情報がある。
このページでは、R の ggplot に含まれる ggsankey 関数を用いてサンキーダイアグラムを作る方法をまとめる。

R の ggsankey() 関数
インストールは remotes() 関数を使って Github から。
これを実行すると、以下の図が出力される。

インプットデータ links
重要なのは input データの形式である。上の例では、最初に作っているデータは以下。

つまり、左の node と、そこと線で繋がる右の node が一行に書かれているだけである。これを make_long() で変換した sankey_data はこうなっている。
奇数行目はわかりやすい。例えば一行目なら、user_id という列 (x で表される) の 1 という node から、stage という列 (その次の x) の Start という node に線が引かれるということ。
偶数行目はちょっとわかりにくいが、「線が出ない」ことを指定しているようだ。二行目なら、stage 列の Start という node には、そこから線をひく「その次の X」が存在しないため、NA になっている。

このような 3 列の Sankey を作りたい場合も、input データの形式は基本的に同じである。

データは、やはり一行が一本の線に相当する。1 から Start へ、さらにそこから A へと線が引かれる。1 から End へは線が引かれない。

これを make_long() すると、以下のように変換される。ggplot 系の関数は基本的にこのような整然データを input とするので、慣れるとこの形はわかりやすい。

広告
References
- Sankey diagrams in ggplot2 with ggsankey. Link: Last access 2024/01/04.
コメント欄
サーバー移転のため、コメント欄は一時閉鎖中です。サイドバーから「管理人への質問」へどうぞ。