Tableau * Alteryx でポリゴンとポイントを同時にマッピングする

Tableau * Alteryx でポリゴンとポイントを同時にマッピングする | Tableau-id Press -タブロイド-
tableauid20151110-1

今回は前回の投稿でご案内したとおり、行政区画ポリゴンとバス停を同時にTableau上でマッピングする方法を共有します。

Tableauではポリゴンとポイントを同一地図上に配置する場合、若干工夫が必要です。
簡単に言うと、現時点では複数の緯度経度フィールドを一つのマップに落とすことができません。
これはポイントデータ同士でも同じです。

例えば、AさんがZ店で買い物をしたとします。この場合、Aさんの住所、Z店の店舗住所が取得可能とすると、一つのトランザクションレコードに『顧客住所緯度及び経度』と『店舗住所緯度及び経度』の二種類の緯度経度フィールドを紐付けることが可能です。

しかし、Tableauでは、同じマップ上に表現できる緯度経度フィールドは一種類の組み合わせのみとなります。
そのため、両者を共存させるには、顧客データと店舗データを縦に積み上げ、統合した緯度経度フィールドを持たせる必要があります。

実際に見ていきましょう。

tableauid20151110-1

最初は前回同様、ポリゴンとポイントのマッチングです。今回のモジュールでは分岐したフローの上側がそれに該当します。
ここはあくまでバス停に行政区画を紐付けることが目的です。
人口などはポリゴンデータに持たせれば良いため、今回はチェックを外しています。

tableauid20151110-2

分岐したフローの下側はポリゴンデータのTableau化です。
Developers.IOでも過去に取り上げられていた『Visual Analytics Kit for Tableau』の中に現在は[Polygon for Tableau]ツールが加わっており、これを用いると一発で変換されます。

ただ、人口数や世帯数のようなデータが、ポリゴンのポイントの数だけ増殖してしまいます。
集計の際に平均で取り扱うか、今回のモジュールのように1つを残してカットする必要があります。

tableauid20151110-3

最後に[Union]でデータを結合し、緯度・経度を1つのフィールドにまとめてデータソースは完成です。

TableauにこのTDEを接続し、ポリゴンとポイントのグラフを、列と行ともに二重軸でつなげで実装完了。(『統合緯度経度』シート)

var divElement = document.getElementById(‘viz1573538812556’); var vizElement = divElement.getElementsByTagName(‘object’)[0]; vizElement.style.width=’100%’;vizElement.style.height=(divElement.offsetWidth*0.75)+’px’; var scriptElement = document.createElement(‘script’); scriptElement.src = ‘https://public.tableau.com/javascripts/api/viz_v1.js’; vizElement.parentNode.insertBefore(scriptElement, vizElement);

注意点としては、行政区画のポリゴンデータは『町丁・字等名称』でユニークではないため、マークの詳細に『AlteryxKey』というディメンションを投げ込む必要があります。また、『PointOrder』もディメンションとしてパスに落とさなくてはなりません。

【蛇足】
最初、Alteryxのワークフロー上で『町丁・字等名称』をキーにポリゴンをグルーピングしたのですが、結果的にTableau上ではドーナツの穴の中に存在する区画との重複が生じました。
Tableauではドーナツのように穴の開いたポリゴンデータ(一筆書きできないもの)は現時点では取り扱えないようです。
なお、国勢調査の行政区画ポリゴンはドーナツ型のものは適当に分断されているようで、下手にグルーピングせずにそのまま使えば特に問題は無さそうです。
ご参考までに。

 

T.Fuji