人口ピラミッドとは
人口ピラミッドは男女別に年齢ごとの人数を表したグラフのことで、中央に縦軸を引いて性別によっての年代の分布を確認することが出来、注力すべき世代を確認するのに役立ちます。
Tableauでも一工夫して作成が可能です。
Tableauにおける人口ピラミッドの課題
男女比が等しくないデータを使用してTableauで人口ピラミッドを作成すると、各性別での軸の最大値が異なったり、軸が中央にならないため上手く分析出来ない場合があります。今回はリファレンスラインを使用してこの問題を解決する方法を解説します。
##人口ピラミッド作成のおさらい
人数の計算フィールドを作成する。男性の人数はプラス、女性の人数はマイナスになるようにする。
1レコードを1カウントとする場合は以下のように計算。
IIF([性別]="男性",1,-1)
顧客のユニーク数をカウントする場合は以下のように計算。
IIF(MAX([性別])="男性",1,-1)
*
COUNTD([顧客名])
列に先ほど作成した人数の計算フィールドを、行に先ほど作成した年齢のビンを、色に性別を配置する。
年齢のビンは降順にし、書式設定を使用して「代」などをサフィックスにつけると親切。
作成した人数の計算フィールドの書式設定をカスタムに設定し、プラスでもマイナスでも"‐"がつかないように表示するように設定
#,##0;#,##0
横軸をそろえた人口ピラミッドの作成方法
ここからが本題です。この人口ピラミッドにリファレンスラインを使用して横軸をそろえる設定をしていきます。
計算フィールドを2つ作成。
性別の各世代の最大値をWINDOW_MAXで取得し、その値が男女でどちらが大きいかを比較。大きい方を表示できるようにする。
IF WINDOW_MAX(ABS([男女人数]))>=WINDOW_MAX(ABS(-[男女人数])) THEN
WINDOW_MAX(ABS([男女人数]))/2
ELSE
WINDOW_MAX(ABS(-[男女人数]))/2
END
IF WINDOW_MAX(ABS([男女人数]))>=WINDOW_MAX(ABS(-[男女人数])) THEN
-WINDOW_MAX(ABS([男女人数]))/2
ELSE
-WINDOW_MAX(ABS(-[男女人数]))/2
END
作成した2つの計算フィールドを詳細に入れ、次を使用して計算を「性別」に設定する。
リファレンスラインを追加。値を作成した正の計算フィールドの最大値に設定し、ラベル、線を「なし」に設定する。
同様に値を作成した負の計算フィールドの最小値に設定し、ラベル、線を「なし」に設定する。
これにより、男性側も女性側の値と同じ程度の範囲が表示され、軸も真ん中で固定される。
まとめ
リファレンスラインによって軸の範囲を変更する機能はかなり便利なので活用できると良いと思います。
Tableauの仕様によりスムーズな分析が阻害されるような要素についても工夫次第では排除できることもありますので、方法がないかを試行錯誤することはかなり大事と思います。