ヘキサゴナル ビニングを用いた地震発生源ヒートマップの作成

Version 6

    皆さまこんにちは。

     

    意外と知られていないと思うのですが、Tableau 9.0 から提供されるヘキサゴナル ビニングの機能を用いて、データ密度を可視化しヒートマップを作成することができますので、今回はこの機能について紹介したいと思います。

     

    以下、文末添付ワークブックを参照しながら読み進めてください。

     

    例えば地震の発生頻度を可視化したいという場合、発生回数を地図上の座標にプロットすると、プロット同士が重なって、どこが発生頻度が多い(密度が濃い)地点なのか分かりにくくなる場合があります。

    このような場合、ヘキサゴナル(六角形) ビニングの機能を用いて発生地点を六角形のメッシュに仕分け(量子化)し、ヒートマップを作成することで、発生頻度の多さ(密度の濃さ)を可視化し見えやすくすることができます。 (下の図でひとつずつのマークは六角形です)

     

    ↓ 通常のプロットを行った場合:

     

    具体的には、ヘキサゴナル ビニングはHEXBINX()HEXBINY()関数を利用します。

    この関数は(X,Y)の座標が与えられた際に一番近い六角形のビンのX座標またはY座標を返します。

     

     

    実際のX,Y座標を粒度の荒い六角形のメッシュに分割(量子化)し、メッシュの単位で発生回数(密度)を計算して色分けをしているという仕組みです。

     

    以下のような計算式を作成します。ここでスケール係数というものが出てきますが、この係数によってメッシュの荒さを変えることができます。

     

    X座標:

    HEXBINX([X]*  [スケール係数] ,[Y]*[スケール係数]) / [スケール係数]

     

    Y座標:

    HEXBINY([X]*  [スケール係数] ,[Y]*[スケール係数]) / [スケール係数]

     

     

    ※ 一点注意なのですが、ヘキサゴナル ビニングで利用する六角形のマークはTableauの中にデフォルトでは入っていないので、添付の六角形イメージをMy Tableau Repositoryの下にディレクトリを作成し(例: C:\Users\xxxxx\Documents\My Tableau Repository\Shapes\HEXBIN )、コピーして利用してください。

     

    では、ここでイメージしやすいようにサンプルのデータを用いてデータの量子化をしてみたいと思います。

     

    今 (1,1) から 100,100) までの連続したデータがあるとします。

     

    これをHEXBINX、HEXBINYを用いて量子化したものが以下の図になります。

    まず、スケール係数=0.1の場合です。

    実際のX,Y座標が量子化されて一番座標の近い六角形に仕分けされているのがわかります。

     

     

    スケール係数=0.05の場合です。より量子化の単位が粗くなります。

     

     

    なんとなくイメージが掴めたのではないでしょうか。

     

    それでは、より現実的な地震発生源データをヘキサゴナル ビニングを用いてヒートマップで表してみましょう。以下のステップを参照ください。

     

    ステップ:

     

    1.準備として六角形画像ファイルを My Tableau Repositoryの下にディレクトリを作成し(例: C:\Users\xxxxx\Documents\My Tableau Repository\Shapes\HEXBIN )、コピーしておく。

     

    2.浮動小数点のパラメータ ”スケール係数”を作成する。(今回は10をデフォルトとします。)

     

    3.計算フィールド ”HEXBINX”を作成し以下を入力する

    HEXBINX([経度] * [スケール係数], [緯度] * [スケール係数]) / [スケール係数]

     

    4.計算フィールド ”HEXBINY"を作成し以下を入力する

    HEXBINY([経度] * [スケール係数], [緯度] * [スケール係数]) / [スケール係数]

     

    5.計算フィールド ”HEXBINX, "HEXBINY" [データ] ペイン内で [メジャー] から [ディメンション] に移動する。

     

    6.”HEXBINX”の地理的役割を”経度”、"HEXBINY" の地理的役割を”緯度”に指定する。

     

    7.列に”HEXBINX"を行に”HEXBINY"をドラッグする

     

    8.レコード数を色にドラッグし、ステップトカラーで適当な色の配分を調整する。

     

     

    さてここでなぜマークが六角形なのかについて補足をしておきます。

     

    他の形だったらどうなるのか見てみましょう。

     

    まず四角形だった場合: 隙間が空いてしまいますね。

     

    丸だった場合: こちらも隣接する辺がないので隙間なくマークを敷き詰めるのは難しいです。

     

    六角形だった場合:これが一番隙間なくマークを敷き詰められているのではないでしょうか。

     

    理論的には、六角形は中心から輪郭となる辺までの距離と、頂点までの距離の誤差が四角形に比べて小さいので、ビニングする際に最も近い区分にビニングされ、誤差が小さくなるという特性があるため、六角形によるビニングが利用されているとのことです。

     

     

    今回の投稿はピッチャーのストライクゾーンの可視化を例に紹介している、

    以下ナリッジベースを参照としています。

     

    Hexagonal Binning with Tableau

    http://kb.tableau.com/articles/knowledgebase/hexagonal-binning-pitch-data

     

    また、HEXBINの機能はTableauのクラスルームトレーニング Desktop Ⅲという研修でカバーされており、

    今回、この機能を勉強する機会になりました。

    その他にもクラスター分析やLOD等分析をする際にためになる内容がカバーされていましたので参考まで:

    クラスルームトレーニング - Desktop III Advanced (上級) | Tableau Software

     

    今回ご紹介した地震発生源の他にも、人口密度、降水量、事件の発生件数、標本の分布密度等いろいろな用途でヒートマップによる可視化が応用できそうですね。

     

    是非お試しください。

     

    → Tableau Public:

    https://public.tableau.com/static/images/HE/HEXBIN/sheet2/1.png

     

    ※ ご注意:HEXBINを用いたヒートマップの可視化については拡張機能となっておりますので、提供される機能以上のサポートは提供されない場合がございます。

    その点ご了承の上ご利用ください。

     

     

    以上、参考になれば幸いです。

    よろしくお願いします。