ggsankey 関数を使ったサンキーダイアグラム作成

UB3/informatics/r/sankey_ggsankey

このページの最終更新日: 2025/01/05

  1. 概要: サンキーダイアグラムとは
  2. R の ggsankey() 関数

広告

概要: サンキーダイアグラムとは

サンキーダイアグラム Sankey diagram とは、各工程間の流量を示す以下のような図のことである。sanketNetwork 関数 のページにもう少し基本情報がある。

このページでは、R の ggplot に含まれる ggsankey 関数を用いてサンキーダイアグラムを作る方法をまとめる。

R サンキーダイアグラム

R の ggsankey() 関数

インストールは remotes() 関数を使って Github から。

これを実行すると、以下の図が出力される。

R サンキーダイアグラム ggsankey

インプットデータ links

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

R サンキーダイアグラム input

つまり、左の node と、そこと線で繋がる右の node が一行に書かれているだけである。これを make_long() で変換した sankey_data はこうなっている。

奇数行目はわかりやすい。例えば一行目なら、user_id という列 (x で表される) の 1 という node から、stage という列 (その次の x) の Start という node に線が引かれるということ。

偶数行目はちょっとわかりにくいが、「線が出ない」ことを指定しているようだ。二行目なら、stage 列の Start という node には、そこから線をひく「その次の X」が存在しないため、NA になっている。

R サンキーダイアグラム input

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

R サンキーダイアグラム ggsankey

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

R サンキーダイアグラム input

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

R サンキーダイアグラム input
広告

References

  1. Sankey diagrams in ggplot2 with ggsankey. Link: Last access 2024/01/04.

コメント欄

サーバー移転のため、コメント欄は一時閉鎖中です。サイドバーから「管理人への質問」へどうぞ。