WorkoutWednesday2019week08 - パレート図


最近TableauでVIZを作ることにはまっている。毎週やっているWorkoutWednesdayという企画についてせっかくなのでメモを書いていこうと思う。ちなみにWorkoutWednesdayとは毎週水曜日にこのVIZを作ってみよという課題が提示されて頑張って解くというもの。普段使わないテクニックを知れたり、面白い表現方法を学ぶ場としてとても良い。似た取り組みにMakeoverMondayというのもある。こちらはデータとそのビジュアライズが提示されて、もっと良いビジュアライズにしたらどうしたらいいか考えてMakeover(作りなおす)してみるというもの。


http://www.workout-wednesday.com/2019-week-8-what-percentage-of-products-make-up-80-of-sales/

前段が長くなったが、今回は2019年の第8週のテーマについて元記事の簡単な翻訳と作ったVIZのポイントをまとめていきます。かなりザクっと書いています。時間があればおいおい細かい解説も書いていこうと思います。

元記事は以下。

今週のテーマ(ざっくり翻訳)

概要

今週は私の好きなチャートタイプであるパレート図をみていこう。パレート図の目的はxの20%がyの80%を占めるという一般的な仮定のもとに、xの何%がyの何%を占めるかを調べることにある。今週のワークアウトでは、xの%がyの80%と交差するポイントを特定する。また、xの任意のサブセットの実際の値を詳しく調べることも実現する。この課題の重要な部分は、Tableauの基本機能を利用して実現するという所にあります。2個以下の計算フィールドで作り上げましょう。

要件

  • Dashboardサイズは 1200x500。シートは2枚。
  • 売上合計の全体に占める割合が80%を超えるポイントに円マークを配置する
  • 売上合計の80%と製品合計の20%にリファレンスラインをかく
  • 使っていい計算式は二つまで。あとはビルトインの機能を使いましょう
  • パレート図から製品を選んでダイナミックに表示/非表示を切り替える
  • 内側パディングとして、全シートの全方向と、タイトルとラインセパレータの左右に15pxを設定する
  • ツールチップとフォントと書式で色を揃える

データセット

Tableau2018.3のサンプルスーパーストアのデータを使う。data.worldからもダウンロード可能。

メモ:海外版と日本語版で内容が異なる可能性もあるのでTableau2018.3を使っていたとしてもdata.worldのデータを使った方が良いと思われる。

作レポ

結果的に計算式は1個しか使わなかった。何か観点が漏れてるかも。

パレート図を作る

このサイトを参考にさせていただいた。ただしこの記事ではTableauバージョンが古いので、今は標準機能でできることが多く読み替えは必要。パレート図を作るだけであれば計算式を書く必要はない。
https://www.theinformationlab.co.uk/2014/08/27/pareto-charts-tableau/

80%を超えるポイントに円マークを作る

ここが一番苦労した。そしてここで1個計算式を作った。パレート図は計算フィールドを使わずとも標準機能で作れるのだが、流石にここは計算フィールドを使った。
作った計算フィールドは以下。

売上の累計(合計に占める割合)running_sum(sum([Sales]))/window_sum(sum([Sales]))で表しています。running_sumもwindow_sumもどっちも表計算で、表(横)で計算しています。前者は累計、後者は表横方向つまり全部のマークの合計を算出しています。

そして、売上の累計(合計に占める割合)が80%を超えてて、かつ1個前のその値は80%を超えていない場合にのみ、売上の累計(合計に占める割合)を示すという計算式。1個前の値を見るためにlookup関数を使っています。

ちなみにテキストでも書いておきます

if running_sum(sum([Sales]))/window_sum(sum([Sales])) > 0.8
and lookup(running_sum(sum([Sales]))/window_sum(sum([Sales])),-1) < 0.8
then running_sum(sum([Sales]))/window_sum(sum([Sales]))
end

これさえできてしまえばあとは二重軸にして軸の値を同期してマークを円にして適切な色とサイズを設定すればOK.

詳細な売上を表示させる

ここはもう1個シートを作ってセットアクションで連動させます。作ったシートの完成品はこれ。

ダッシュボードを作成

  • 水平コンテナを使って左にパレート図のVIZ、右にリストのVIZを配置する。
  • ダッシュボードアクションでセットアクションを選んでパレート図で選んだものがセットに入るようにする。選択がなくなった場合は全部セットから排除する。
  • リストのVIZのタイトルを非表示にしておくと何も選んでいない状態では表示するものがなくなるので自動的にVIZが非表示になってパレート図のサイズが大きくなる。
  • パレート図のVIZもタイトルは非表示にしておく
  • あとは適当にタイトルを入れて完成!

所感

基本的な図でありながら作り方を覚えていないパレート図について理解が深まった。VIZ上の特定の1点を強調して表示するのは様々なテクニックがあるので、WoWで引き出しを増やせるのはかなり良い。セットアクションを使って詳細にもダイブできる作りは仕事でも使えそう。