TableauでUnitChartを作る
先般 Tableau Makeover Monday 2020/W36に参加しました。
My first submission for #MakeoverMonday
— koba@DataAnalyst (@h_kobayashi1125) 2020年9月9日
2020/W36
Want to know the amount of bad and good ingredients in your cereal?https://t.co/bjITa3gW5k#Tableau pic.twitter.com/PPMgoD3a48
そこでUnit Chartを使いたかったので少しお勉強した結果を備忘録します。
Unit Chart
ピクトグラム(Pictorial Fraction Chart)とか呼ばれたりもします。
Pictorial Fraction Chart | Data Viz Project
Viz作品では以下のような感じで、砂糖&食物繊維がどれくらい含まれているかを一目で理解できるようにするために用いました。
作成方法は先駆者がすでに色々発信してくれていますので、こちらも参照するといいと思います。
Creating A Unit Chart in Tableau - The Data School
https://vizartpandey.com/unit-chart-in-tableau/
ここで紹介するのは、上記例よりかなり稚拙ですが、 簡素に実装した例です。
データ準備
まずはUnit Chartで表したい集計値を用意します。
以下紹介する実装内容は、集計済みテーブルがある場合にのみ対応しているので、
トランザクションデータからメジャーで集計・可視化する場合は別途他の方法をご検討いただけるとよいです。
つづいて、ピクトグラムの位置情報となる座標テーブルを用意します。
col
はピクトグラムのX座標、row
はY座標になります。
この例では1行10列のピクトグラムになることが分かります。
compare
は色分け時に利用するものです。
先ほどの集計データは10
が最大値でした。
そのため、ピクトグラムの最大も10
個にしています。
ここの数は、手持ちのデータを踏まえて最大値を決める必要があります。
データモデル設計
先ほど用意した集計データを読み込みます。
つづいて、作成した座標データをjoinします。 が、もちろん結合キーが無いのでエラーになります。
ここで、集計データすべてに対して、ピクトグラムの座標情報を与えたいので、
Full Outer Joinできるよう関係式として1
を作成します。
これで狙い通り、全組み合わせをJoinしたデータモデルを用意できます。
Vizの準備
col
, row
をそれぞれ列・行に配置します。
メジャーだと集計されてしまうので、ディメンションに変換するのを忘れずに。
以下色分け用のBooleanを用意します。
MAX([Value]) >= MAX([Compare])
これは、集計値(Value
)よりも比較値(Compare
)が大きければTrue,
小さければFalse
を返します。
これを「色」マークに配置すれば、各Class
ごとの色分け条件を評価するため、集計値以下のマークと以上のマークの色分けができるようになります。
あとは適当に補助線を消したり、
アイコンを以下のようなサイトで選んで変更して完成です。
Appendix
ちなみに最大値10のデータを1行10列で表現しましたが、 2行5列ではどんな感じになるでしょうか??
その場合は以下のような座標情報を用意してあげればOKです。
結果は以下のようなイメージ。
集計済みデータにしか対応していないので、中々使い勝手が悪いですが、
スポットの可視化に対しては手軽にできるので便利でした。