Tableauの強力なマッピング機能を利用すると、地図上にデータが表示された魅力的な地図を容易に作成することができます。
本ページでは、6角形のタイルを敷き詰めて地形を表現し、データの集計値をタイル上に表示するヘックスタイルマップ(hex tile map)を紹介します。
ヘックスタイルマップ
ヘックスタイルマップの利点は、地図上の距離や表示面積の違いによる影響を吸収することができる点です。離島等の遠隔地の表示を見やすくしたり、狭い地域の表示が省略されるのを回避することができます。
その一方で、ヘックスタイルマップはおおよその地理的な位置関係を表現したマップなので、地理上の正確な位置や距離などの情報が必要な場合には適していません。
これまでヘックスタイルマップの開発には多くの人が関係していて、様々な作成方法が考案されています。
- Matt Chambersさん(@shrvizalot)による座標データを用いた方法 関連記事
- Joshua Milliganさん(@VizPainter)によるシェープファイルを用いた方法 関連記事
- Luke Stankeさん(@lukestanke)による隙間入りシェープファイルを用いたマップ
以下では、簡単でかつ(個人的に)見やすい隙間入りシェープファイルを利用したヘックスタイルマップ作成方法を紹介します。
地図の作成
それでは実際に例を用いて作り方を見ていきましょう。
【完成図】
以下のようなVizを作成します。
データの準備
準備すべきデータは、
- 分析対象のデータ
- シェープファイル
の2つです。
1. 分析対象のデータ
アメリカ合衆国の自動車保険のデータを利用します。
データはMakeoverMonday2020年第20週のページからダウンロードできます。
中身を確認してみると、以下のようになっています。
州毎に順位、州名、フルカバー保険料(Full coverage)、ミニマム保険料(Minimum coverage)などのフィールドが存在し、フルカバー保険料順にランキングされていることが分かります。
2. シェープファイル
アメリカ合衆国の州毎のヘックスタイルマップを描くためのシェープファイルをLuke Stankeさん(@lukestanke)が公開していますのでそちらを利用します。
こちらからダウンロードできます。
ダウンロードしたzipファイルを解凍すると以下のようになっています。
名前が「HexStatesPadded」の4ファイルと「HexStates」の4ファイルが存在します。どちらを利用しても作成できますが、「HexStatesPadded」の方を利用するとヘックスタイルの間に隙間のあるマップが作成されます。
なお、4つのファイルはすべて1つも欠けることなく同じフォルダ内に入れるようにしてください。
マップの作成
以下の手順で作成します。
- 手順1データの読み込み
- 手順2ヘックスタイルの表示
- 手順3集計値をタイル上に表示
1. データの読み込み
分析対象のデータ(Cost of car insurance by state.xlsx)を読み込みます。
フィールド名がうまく取得できていないようです。
そこでTableauのデータインタプリター機能を利用してそれらを除外したシートを作成してみます。
以下のように、「データインタプリターを使用してクリーニング」にチェックを入れると正しく読み込めます。
続いて「追加」をクリックして「空間ファイル」を選択、シェープファイル(HexStatesPadded.shp) を読み込みます。
ファイル「HexStatesPadded.shp」をキャンバスにドラッグ&ドロップします。
2つのファイルにある州の名前をキーとして結合されました。
2. ヘックスタイルの表示
データが読み込めたのでマッピングします。
データペインの「ジオメトリ」をダブルクリックします。
地図上にヘックスタイルが表示されました。
今回はTableauの地図が不要なので消去します。
メニューから「マップ」-「マップレイヤー」を選択します。
マップレイヤーのすべてのチェックを外します。
背景が白地になります。
3. 集計値をタイル上に表示
最後にデータの集計値を各タイル上にプロットしていきます。
州名を表示させて保険額で色分けしたいので、データペインの「State Abbr」をマークのラベル、「Full coverage」をマークの色にドラッグ&ドロップします。
明確な色付けにしたいので、マークの色をクリックして「色の編集」で「オレンジ – 青 – 白の分化」のパレットを選択します。
完成しました!
ミシガン州(MI)が断トツでフルカバー保険料が高いことがわかります。
遠隔のハワイ州(HI)もマップ内に収まっていますし、面積の小さいロードアイランド州(RI)等も表示されています。
ちなみに、「HexStates」のシェープファイルを利用すると以下のように隙間のないヘックスタイルマップになります。
本ページでは、6角形のタイルを敷き詰めて地形を表現し、データの集計値をタイル上に表示するヘックスタイルマップ(hex tile map)を紹介しました。