俺のOneNote

俺のOneNote

データ分析が仕事な人のOneNote愛とか、分析小話とか。

TableauでUnitChartを作る

先般 Tableau Makeover Monday 2020/W36に参加しました。

そこでUnit Chartを使いたかったので少しお勉強した結果を備忘録します。

Unit Chart

ピクトグラム(Pictorial Fraction Chart)とか呼ばれたりもします。

Pictorial Fraction Chart | Data Viz Project

Viz作品では以下のような感じで、砂糖&食物繊維がどれくらい含まれているかを一目で理解できるようにするために用いました。

Tableau Public

f:id:kopaprin:20200923160338j:plain

作成方法は先駆者がすでに色々発信してくれていますので、こちらも参照するといいと思います。

Creating A Unit Chart in Tableau - The Data School

https://vizartpandey.com/unit-chart-in-tableau/

ここで紹介するのは、上記例よりかなり稚拙ですが、 簡素に実装した例です。

データ準備

まずはUnit Chartで表したい集計値を用意します。

f:id:kopaprin:20200923160354j:plain

以下紹介する実装内容は、集計済みテーブルがある場合にのみ対応しているので、
トランザクションデータからメジャーで集計・可視化する場合は別途他の方法をご検討いただけるとよいです。

つづいて、ピクトグラムの位置情報となる座標テーブルを用意します。

f:id:kopaprin:20200923160404j:plain

colピクトグラムのX座標、rowはY座標になります。
この例では1行10列のピクトグラムになることが分かります。
compareは色分け時に利用するものです。

先ほどの集計データは10が最大値でした。
そのため、ピクトグラムの最大も10にしています。
ここの数は、手持ちのデータを踏まえて最大値を決める必要があります。

データモデル設計

先ほど用意した集計データを読み込みます。

f:id:kopaprin:20200923160418j:plain

つづいて、作成した座標データをjoinします。 f:id:kopaprin:20200923160434j:plain が、もちろん結合キーが無いのでエラーになります。

ここで、集計データすべてに対して、ピクトグラムの座標情報を与えたいので、
Full Outer Joinできるよう関係式として1を作成します。

f:id:kopaprin:20200923160448j:plain

これで狙い通り、全組み合わせをJoinしたデータモデルを用意できます。

f:id:kopaprin:20200923160513j:plain

Vizの準備

col , row をそれぞれ列・行に配置します。
メジャーだと集計されてしまうので、ディメンションに変換するのを忘れずに。

f:id:kopaprin:20200923160537j:plain

以下色分け用のBooleanを用意します。

MAX([Value]) >= MAX([Compare])

これは、集計値(Value)よりも比較値(Compare)が大きければTrue,
小さければFalseを返します。

f:id:kopaprin:20200923160651j:plain

これを「色」マークに配置すれば、各Classごとの色分け条件を評価するため、集計値以下のマークと以上のマークの色分けができるようになります。

f:id:kopaprin:20200923160709j:plain

あとは適当に補助線を消したり、
アイコンを以下のようなサイトで選んで変更して完成です。

アイコン素材ダウンロードサイト「icooon-mono」 | 商用利用可能なアイコン素材が無料(フリー)ダウンロードできるサイト | 6000個以上のアイコン素材を無料でダウンロードできるサイト ICOOON MONO

f:id:kopaprin:20200923160936g:plain

Appendix

ちなみに最大値10のデータを1行10列で表現しましたが、 2行5列ではどんな感じになるでしょうか??

その場合は以下のような座標情報を用意してあげればOKです。

f:id:kopaprin:20200923173932j:plain

結果は以下のようなイメージ。

f:id:kopaprin:20200923161115g:plain

集計済みデータにしか対応していないので、中々使い勝手が悪いですが、
スポットの可視化に対しては手軽にできるので便利でした。