Tableauで『色塗りマップ』と『ポイント』を重ねて表示する

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Tableauでは地理情報(国名や都道府県名や緯度経度)を使って地図の形でグラフィカルなビューを作成する事が出来ます。

当エントリはそんな地理情報を使った、ちょっとした応用編的な内容となります。

Tableauで可能な地理表現 - 点(Point)/線(Polyline)/面(Polygon)

Tableauでは、地理情報を扱う際の単位として以下3つの形式が利用出来ます。緯度経度で示される1つの点がポイント(Point)、2つ以上の点が線として結ばれるとポリライン(Polyline)、そして線が点を増やして輪となる(繋がる)と、その輪の内側を占める面がポリゴン(Polygon)となります。

  • Point(ポイント:点)
  • Polyline(ポリライン:線)
  • Polygon(ポリゴン:面)

上記はざっくり説明でしたが、より詳しい解説については以下をご参照ください。

この辺のトピックについては下記レポートでも言及してたりしますので良ければご参照ください。

点・線・面同士を重ね合わせるのは不可能...?

で、実際にこれらの要素を使ってビューを作っていると、要素間を重ねて表示させたいな〜と思う訳です。思う訳なのですが、私の中では試行錯誤してみたもののその方法が分からず、若干途方に暮れてた部分もありました。

そんな時、ふと下記のエントリを目にしたのです。

...あれ、出来てる!?

という訳で早速このエントリとTableauワークブックを読み解き、自分でも実際にデータを用意して試してみました。

重ねあわせ実践 - サンプルデータ

今回は検証用として、以下のWikipediaから得られる情報を使ってみる事にしました。任意の都道府県(今回は東京・神奈川・千葉)の"野球場"の位置、及び収容人員を使って、

  • 片方は『球場別の情報を緯度経度で表示、収容人員をサイズで表現』
  • もう片方は『球場の収容人員の合計を都道府県単位で合算、その合算値を色塗りマップで表現』

したものをそれぞれ重ね合わせたものを使ってみたいと思います。

データは以下。上記記載3都県の球場の情報で、『住所』と『緯度経度』(もしくは住所のみ=住所から緯度経度を計算)、そして『収容人員』のデータがあるものだけを抽出。CSVとして保存し文字コードを変換しておきます。

$ nkf -g ballpark.csv 
Shift_JIS
$ nkf -Lw ballpark.csv > ballpark-utf8.csv 
$ nkf -g ballpark-utf8.csv 
UTF-8
$ 

作成したファイルは以下にアップロードしておきましたので宜しければご活用ください。

重ねあわせ実践

ではここから実践してみます。まずは従来の要素作成のおさらい。色塗りマップは、(日本の場合)都道府県情報の『地理的役割』を『州』とした上で都道府県をダブルクリック→色塗りの基準としたい数値項目(メジャー)を色に落とす事で(今回は収容人員)、都道府県単位での合算値を使った色塗りマップが出来上がります。

tableau-fillmap-and-point-dual-axises-01

一方もう1つは、緯度経度の項目を上記同様、『地理的役割』の『緯度』と『経度』にそれぞれ割り当て、こちらも項目ダブルクリック(この時点では1点に集約されたまま)→それぞれのポイントを分割させたい粒度で分割(この場合だと球場毎に見たいので球場名)=球場名をマークの"詳細"に落としこむと以下のように球場ごとの緯度経度ポイントが表示されます。円のサイズを収容人員で表現する事で収容人員が多い=円が大きい表示とする事が出来ます。

tableau-fillmap-and-point-dual-axises-02

で、ここからが本題の手法となります。緯度経度マップを作った状態で、緯度の部分をctrl(Macの場合はCommand)を押しながら移動させ、緯度を複製させてください。そうすると以下の様な表示となります。同じグラフが縦に並んで生成されましたね。

tableau-fillmap-and-point-dual-axises-03

そして、片方のグラフの『マーク』欄にある要素を全て取っ払ってください。グラフは縦に並んだままです。

tableau-fillmap-and-point-dual-axises-04

空になった『マーク』欄に対し、本来重ね合わせたかった要素を盛り込んで行きます。

tableau-fillmap-and-point-dual-axises-05

そして、複製した緯度を右クリックし、『二重軸』を選択すると...

tableau-fillmap-and-point-dual-axises-06

良い感じで要素が重なり合いました!ヽ( °∀°)ノ

tableau-fillmap-and-point-dual-axises-07

色味の調整等を行い、以下の様な表示にしてみました。都道府県別の情報と球場別の情報を一度に表示させる事が出来ているので情報としても更に濃度が増していますね。

tableau-fillmap-and-point-dual-axises-08

まとめ

当エントリで紹介した手順は『面』と『点』の二重軸表示でしたが、『点同士』(都道府県の円表示と球場別の円表示)でも上手く重ね合わせる事が出来ました。やり方とアイデア次第で他のバリエーションでの組み合わせも行けるかと思うので、是非色々試してみてください。Tableauでは、公式ドキュメント等では紹介されていないアイデアや使い方がTableau Publicや各種ブログ等でも良く公開・紹介されていたりします。公開されているワークブックであればダウンロードし、実際にどのような設定・手順で作られているかを読み解く事で作り方を学ぶ事も出来るのです(実際今回のケースもそうでした)。Tableauをお使いの皆様も是非色々なコンテンツを見つけて面白そうなのはその作り方について学んで見てください。こちらからは以上です。

参考情報: