見出し画像

【Tableau Tips】Hexbin Mapの作り方、地理空間データの可視化で密度や分布がより分かりやすく表現できる!

ヘックスビンマップ(Hexbin map)は、地理情報システム(GIS)やデータ可視化の分野でよく使われる用語です。六角形のビンを使用してデータを集計し、密度や分布を効果的に視覚化する手法を指します。
Tableauにおいて、Hexbin Mapは地理的なデータを効果的に可視化できる手法の一つとしてよく紹介されますが、ほとんどの記事はアメリカのデータを使って紹介しているため、そのまま転用するのが難しいです。
この記事では、日本地図を描画できるデータも含め、ご紹介します。


Hexbin Mapのメリット

地図上で密度や分布を表現するために、直接データをドラッグ&ドロップしてもよいのですが、どのエリアにより集中しているかは若干分かりにくいです。
例えば、下記の画像は京都府において熊の目撃情報を表すものですが、どのエリアがよく目撃情報が出ているかを知るには、一回目で探す必要があります。

京都府における熊の目撃情報

しかし、Hexbin Mapを使えば、各六角形のビンの色や濃淡を使って、その地域のデータ点の密度を表示することができるため、どの地域がデータが豊富か、またデータがどのように分布しているのかが直感的に理解しやすくなります。

Hexbin Mapを活用した時のビジュアライズ

Hexbin Mapの作り方

利用するデータセットについて

作り方1と2では、【京都府】クマ目撃情報を使っています。

クマ目撃情報のRaw Dataイメージ

作り方2では、さらに各都道府県のデータを使っています。
必要なデータは各都道府県の経度・緯度と、郵便番号です。①経度・緯度のデータ②郵便番号のデータをダウンロードし、Tableau内でJOINすれば使えます。

各都道府県のデータ

作り方1:Hexbin関数+カスタム形状

Step1:ビンの大きさを調整するパラメータを作る

ビンの大きさを調整するパラメータ

Step2:経度・緯度のHexbin関数を作る
以下のように経度・緯度のHexbin関数をそれぞれ作る。

HexLon -- 経度のHexbin関数 
HEXBINX(
    [Lon]*[Hexbin Sizing],
    [Lat]*[Hexbin Sizing]
)
/
[Hexbin Sizing]


HexLat -- 緯度のHexbin関数 
HEXBINY(
    [Lon]*[Hexbin Sizing],
    [Lat]*[Hexbin Sizing]
)
/
[Hexbin Sizing]
関数作成の画面

HexLonを右クリックし、「地理的役割」の「経度」を選択し、HexLatも同じように「緯度」を選択します。

Step3:関数をシートに適用
HexLonとHexLatをディメンションにしてから、シートの行と列にドラッグアンドドロップします。
そして、実際のデータの状況に応じて、パラメータの「Hexbin Sizing」を調整します。

HexlonとHexlatを適用したあとの画面

次は「マーク」のところで「形状」を選び、そこから六角形を適用し、サイズをよい具合になるように調整します。
※形状から六角形の選び方は下記記事をご参考ください。

※六角形素材のダウンロードURLも添付します。

形状を変えたあと

最後は、表す密度のメジャーを色に適用するとできあがります。

完成図

作り方2:Hexbin関数+多角形

Step1:関数を作成
作り方1のデメリットは、ビンとビンは隣接していないことです。これを解決するために、多角形を使います。
作り方1で作った「HexLon」と「HexLat」以外、以下4つの関数も順番に作ります。

Angle
(PI()/3)*INDEX()

ToPad
IF [市町村コード(6桁)] = 
{FIXED [HexLon], [HexLat]:MIN([市町村コード(6桁)])}
THEN 1 ELSE 6 END

MapLon
WINDOW_AVG(AVG([HexLon]))+
(1/[Hexbin Sizing])*COS([Angle])

MapLat
WINDOW_AVG(AVG([HexLat]))+
(1/[Hexbin Sizing])*SIN([Angle])

さらに、作った計算フィールド「ToPad」をディメンションに変換してから、サイズが1のビンを作って「Padded」と命名します。

ToPadのビンを作成

「MapLon」と「Maplat」を作成するとき、「規定の表計算」をクリックし、「次を使用して計算」で「Padded」を選択してから、「地理的役割」の「経度」と「緯度」に変換します。

表計算の定義を変更

Step2:関数をシートに適用
「MapLon」と「MapLat」を列と行に適用します。
「マーク」を「多角形」にしてから「Padded」をドロップします。

関数をドロップ

そして、「Padded」を「パス」のところにさらにドロップします。

パスにドロップ

最初に作った「HaxLon」と「HaxLat」を「詳細」に適用します。

「HaxLon」と「HaxLat」を「詳細」に適用

「HaxLon」と「HaxLat」を右クリックし、「次を使用して計算」で「Padded」を再度選択し、クリックします。

表計算の定義を変更

最後は必要に応じて、ビンと線の色を変更したり、サイズを調整したりすると出来上がります。

完成図

見て分かるように、作り方1に比べ、六角形のビンが隣接していて、密度の高いデータを使うときは作り方2のほうがより効果的です。

参考ですが、日本全国の地図を作りたい場合は、冒頭で紹介していた都道府県のデータセットを使えばできます。

日本地図

ただし、こちらのデータセットは都道府県単位のものとなり、より細かくビンを分けたい場合は市区町村の経度・緯度と郵便番号を持つデータセットを用意する必要があります。

作り方3:ROUND関数+定数

こちらは有志が作ったデータセットを活用した方法です。
※オリジナル記事はURLからご覧ください。

各都道府県に定数をつけることで、相対位置を調整し、ダッシュボードに適用するときはより見やすくなります。デメリットとして密度を調整することができないです。

各都道府県に整数を付与されている

Step1:関数を作成

ROUND X
ROUND(-[横])

ROUNX Y
ROUND(-[縦])

Step2:関数をシートに適用
下記画像のように、「ROUND X」と「ROUND Y」を列と行に適用してから、「都道府県」を詳細にドロップします。
それから、形状を六角形に選択し、サイズを調整すればできあがります。

ROUND関数を活用した作り方

この作り方の良さは、都道府県ごとに1つのビンができていることです。
それぞれのビンの都道府県の名前や都道府県の売上などの数字ラベルを表示したいときに一番使いやすいです。

参考として、ROUND関数を活用した日本地図を表すダッシュボードはこちらです。

地域・カテゴリ別売上マップ

この記事が参加している募集

最近の一枚

仕事について話そう

この記事が気に入ったらサポートをしてみませんか?