「カジュアルViz作りましょう」第5回で紹介した、問題の回答解説
こんにちは。
2024年5月9日に、「カジュアルViz作りましょう」第5回が開催されました。
この回で、私は「カジュアルViz作りましょう」出題者から卒業させて頂きましたが、最後に一つ問題を残させて頂きました。
その問題はこちらです。
オプションで「キーボートおよび右クリック使用不可!」となっているのが、面白いポイントです。
早速ですが、回答のGIFアニメはこちらのXポストに載せています。
この動画での操作内容をまとめます。
① 注文(カウント)を行に持っていく。
② データペインの利益フィールドから、ビンを作成。
③ 作成した利益ビンを列に置き。連続にする。
④ サブカテゴリをフィルタに置き、テーブルのみにする。
*ビンの作成が先か、サブカテゴリのフィルタのどちらが先かで、ビンのデフォルトサイズが変わりますが、どちらでも構いません。
⑤ データペインの利益を列に持っていき、③の横に並べる。
⑥ ⑤で置いた利益の集計方法を平均に変更。
⑦ ⑥の平均(利益)のマークカードの詳細に利益ビンを置く。
*これは、⑥の段階では、テーブルの全レコードの平均を横軸、テーブルの全レコードのカウント数を縦軸とする1マークが描かれていて、Y軸の範囲が大きくなっているので、利益ビンをディメンションとしてマークを分けることで縦軸を④の段階のY軸の範囲と同一にするためです。
利益ビン以外のディメンション(顧客IDや製品ID)を置くことでも同様の結果が得られますが、利益ビンを使えば、データの状況がどのような場合でも確実に④の段階とY軸範囲が一致します。
また、行IDがディメンションにある場合は、それも利用可能です。(後述参考)
⑧ マークタイプを棒にする。
⑨ ⑥の平均(利益)のマークカードで不透明度を0、枠線もなしにする。
⑩ 列の、平均(利益)をニ重軸にする。
⑪ Viz上、平均(利益)のヘッダーをダブルクリック。
⑫ 軸編集メニューで軸の同期。
⑬ 平均(利益)ヘッダーを消去。
⑬ データペインをアナリティクスペインに変え、リファレンスラインをドラッグ。Viz上に持っていき、「テーブル」の「平均(利益)」にドロップ。
⑭リファレンスラインの編集Windowで、集計方法を総計にする。
*今回、この総計は、平均(利益)をマークカードの詳細に置いた利益ビンの粒度を無視して計算する(総計機能や、Total関数と同じ動作)という働きをしています。
これで、サブカテゴリ「テーブル」のレコード全体での、平均(利益)となります。
⑮ リファレンスラインのラベルは、値にする。
⑯ 表示された、リファレンスラインの値をクリックし、書式設定を選択。
⑰ 書式を赤色の、大きめフォントに変更。
以上で完成です。
この中で、太字になっている部分が、普段あまり使わない方も多く、ポイントになるかなと思っています。
もし、⑦の段階で
行IDを詳細に置いた場合は、⑭の操作は必要なくなります。
もともとのリファレンスラインの設定が
行ID毎の平均(利益) の 平均 となっており、
これは
レコード全体での平均(利益)と同義になります。
そのため、そのままデフォルトのリファレンスラインを使える事になります。
以上、お楽しみ頂けていると幸いです。
普通に、このVizを作るときはどうすべきか?
さて、今回の問題では、キーボード操作およびマウス右クリック禁止という、通常ありえない条件を付けさせていただきました。
しかし、もちろん業務ではそんな必要性はありませんし、ビンのサイズもきっかりの数字で作るのが普通です。
ここからは、通常の方法で問題のVizを作る場合、どのような方法があるか挙げさせていただきます。
まず。ビンを列に置いた場合、そのビンを連続にしてもリファレンスラインを引く事はできません。
そのため、代わりに計算式を使い、ビン作成と同じ事をさせます。
計算式は、例えば分布図の利益帯の幅を5000円としたい場合は、
FLOOR ( [利益] / 5000 ) * 5000
です。FLOOR関数は、数値を、上下の整数のうち小さい方にする関数です。
例:
0.4 → 0
3.78 → 3
-1.7 → -2
上記計算式では利益を5000で割り、直近の小さい方の整数にし、もう一度5000を掛けなおしています。これで、5000円刻みのビンと同様の結果が導けます。
(プラスの数値のみならINT関数も使えますが、利益はマイナスもあるのでFLOOR関数を使っています。)
この計算式を連続のディメンションとして、列に置きます。
カウント(注文)を行に置き、マークタイプは棒、サイズは固定で幅5000とします。(利益幅を5000刻みとした場合。)
あとは、詳細に平均(利益)を置き、それを使ってリファレンスラインを引きます。リファレンスライン設定での集計方法は総計とします。
このリファレンスラインの設定が分かりにくい場合は、
LOD計算
{ FIXED : AVG ( [利益] ) }
や
表計算のTOTALを利用した
TOTAL ( AVG([利益] ) )
を作り、これらをマークカードの詳細に置き、リファレンスラインに利用する事も可能です。(リファレンスライン設定の集計方法は、「合計」以外ならなんでも大丈夫です。なおLOD計算を利用する場合は、サブカテゴリのフィルターはコンテキストフィルタにし、LOD計算の前に働くようにします。)
パラメーター利用も可能
上記は、利益帯の幅を5000円と固定しましたが、この幅をパラメーターで変更させたい場面も多いかと思います。
その場合は、[利益帯幅パラメーター] を作成し計算式に利用。
FLOOR ( [利益] / [利益帯幅パラメーター] ) * [利益帯幅パラメーター]
棒グラフのサイズにも、この[利益帯幅パラメーター]を利用します。
すると、上図のようにサイズ固定での軸の単位の幅に、パラメーターが自動反映されます。
(Arakawaさん、情報ありがとうございました!)
内容、以上になります。ご精読ありがとうございました!
完成したワークブックをTableau Publicにアップしてありますので、参考にしてみてください。
これからも、「カジュアルViz作りましょう。」をよろしくお願いします!
================================
By ritz_Tableau : Satoshi Ganeko
2020-2023 Tableau Visionary (Zen Master)
2018-2021,2023 Tableau Public Ambassador
Tableau Certified Professional
DATA Saber
X(Twitter) : @ritz_Tableau https://twitter.com/ritz_Tableau
Tableau Public : https://public.tableau.com/profile/satoshi.ganeko#!/