3.0 関係データの可視化:Hierarchical Edge Bundleを理解する
今回はHierarchical Edge Bundle(Bundlingとも書かれます)について解説していきます。
一般的な可視化パッケージには入っていないことが多いので、実際に描いたことがある人は少ないかもしれません。
似たような可視化として、コードダイアグラム(cord diagram、もしくはradial network diagram)があります。
コードダイアグラムは、円形にデータ要素を並べ、関係がある要素間を曲線(コード)で結んでいます。要素の集合や領域をまとめて曲線で描くので、太さの異なる曲線が描かれ、主要な関係が際立って見えます。
ただ、曲線の重なりが多いため、主要な関係は読み解けるものの、全体的な構造は把握しにくい可視化となっています。
色を変えたり透明度を調整したりという工夫はありますが、それでも限界を感じます。
Hierarchical Edge Bundleは、この問題を解消します。
ここでは、2006年のD. Holtenの原論文とそこで言及されている他の技法や周辺技術を簡単に触れながら、Hierarchical Edge Bundleとは何なのかを見ていきます。
Hierarchical Edge Bundleの読み方
Hierarchical Edge Bundleは、グラフデータ(ネットワークデータ)を可視化する、こんなかんじの図です。
各データ要素は円形に並べられ、要素間が枝(エッジもしくはリンク)で結ばれているかいないかで関係性が表現されています。
通常は枝に色を付けたりしますが、ここでは分かりやすさのため余計な自由度は削っています。
ネットワーク図は昔から色々なものが提案されていますが、Hierarchical Edge Bundleの特徴は、その名のとおり階層的な構造をうまく表現することにあります。
上の4つの図は、どれも同じデータを可視化したものです。
24個の要素が6つずつグループ(クラスター)に分けられており、それを反映して要素の位置がグループごとに固まっています。
階層構造というのは、こうしたグループが複数集まってさらに大きなグループを構成しているような入れ子構造のことを指します。
この例では階層構造といってもグループにまとめられているだけなので、最もシンプルな階層構造です(1層だけの階層構造)。
上の例で、要素がグループごとにまとめて配置されているのはどの図でも同じですが、枝の繋がり方にはかなり違いがあります。
後述しますが、Hierarchical Edge Bundleには$${\beta}$$($${ 0 \le \beta \le 1 }$$)というパラメーターがあります。
$${\beta=0}$$の場合は要素同士が直線で結ばれ、枝のパターンの特徴を目視で把握するのは困難です。
しかし、$${\beta=1}$$に近づくほど枝が曲げられ、束ねられるため、グループ内やグループ間での要素のつながり具合が分かりやすくなっています。
データ要素が円周上に均等に並んでいたとしても、枝に色分けがされてなかったとしても、枝の束ねられ方からグループ構造や階層構造を把握することができるのです。
もっと深い階層構造になっている場合の例も載せておきます(下図)。
円周付近で枝が束ねられているだけでなく、その先の中心近くでもさらに束ねられており、多層の階層構造になっていることが分かります。
これはHierarchical Edge Bundleを描画できるパッケージ「graph-tool」の開発者であるT. Peixoto氏の論文に載っている図です。
この図では、通常描画されることがないコントロールポイント(後述します)も一緒に描画されており、階層構造が分かりやすくなっています。
以上が、Hierarchical Edge Bundleの大まかな説明です。
次へ進む前に、いくつかユーザー視点で気になるであろうことをまとめておきます。
要素の並び順:これらのデータ要素は、順序変数になっている場合はその順序に沿って並べられますが、カテゴリカル変数の場合は、特に順序は決まっていません。
Holtenの論文でも順序について触れられてはいますが、最適な並べ方についての提案はありません。
頂点は描かれないことも多い:グラフデータというと、頂点と枝で描画することが多いですが、Hierarchical Edge Bundleではあまり頂点は描かれません。(上図のgraph-toolによる例では描画されています)
頂点が円周上にない場合もある:Hierarchical Edge Bundleは頂点が円周上に並んでいないバージョンも一応存在します。ただ、すでにHoltenの論文の中で円周上に並んでいるほうが見やすいという評価が書いてあることもあり、円形でないHierarchical Edge Bundleはかなりレアです。
枝(関係性)は2値:関係性を表す枝には、多種類(異なる関係性)あったり、重み(量的な関係性)があったり、色々なパターンが一般的には考えられますが、Hierarchical Edge Bundleでは通常「枝で結ばれている/結ばれていない」の2値のみを考えます。重複枝も通常は考えません。
枝の向き情報は取り込める:有向枝のHierarchical Edge Bundleは、枝の両端を異なる色にすることで表現できます。
Hierarchical Edge Bundleで表現されたデータを読んだり、パッケージを用いて描画するためには、ここまでの内容で十分なのですが、ここからその特徴について細かく見ていきます。
頂点は描かれないことが多いと書きましたが、入力はグラフデータなので、説明の分かりやすさのために、以下ではデータ要素は頂点として円周上に配置されていると想定して説明をします。
Hierarchical Edge Bundleは何が革新的なのか
そもそもHierarchical Edge Bundleは何がそれまでの手法と比較して革新的だったのでしょうか。
この記事が気に入ったらチップで応援してみませんか?