備忘録として書いておきます。
Tableau2024.2以降
拡張機能でSanky-Diagramを簡単に作成できるようになった
拡張機能を使わない場合の作成手順
1. データを用意
下記のようにStartPointからEndPointへどう値が動いたか集計したクロス集計表を出す
row_no | StartPoint | EndPoint | Value |
---|---|---|---|
1 | A | a | 24 |
2 | A | b | 35 |
~ | ~ | ~ | ~ |
20 | E | d | 17 |
さらにS字カーブを描く用のデータを用意する
※基本的には0.25刻みで作成することにより綺麗に描ける
Path | T | MinMax |
---|---|---|
0 | 6 | Min |
1 | 5.75 | Min |
2 | 5.5 | Min |
~ | ~ | ~ |
23 | 0.25 | Min |
24 | 0 | Min |
25 | -0.25 | Min |
~ | ~ | ~ |
48 | -6 | Min |
49 | -6 | Max |
~ | ~ | ~ |
96 | 5.75 | Max |
97 | 6 | Max |
2. Tableauに取り込む
結合計算を利用し、クロス集計表とS字カーブを描く用のテーブルを結合する
すべての行で結合するため、データの件数が増えるため注意
3. 描画前に計算フィールドを用意する
・Measure:Sum(Value)
構成比を出すための集計値
・Composition_Ratio:Measure/TOTAL(Measure)
構成比
・Curve_Function:1/(1+EXP(1)^-[T])
シグモイド関数(S字カーブを描くためのもの)
・Position_Max:RUNNING_SUM([Composition_Ratio])
・Position_Min:[Position_Max]-[Composition_Ratio]
・Position_Max2:RUNNING_SUM([Composition_Ratio])
・Position_Min2:[Position_Max2]-[Composition_Ratio]
・Curve_Max:[Position_Max] + ([Position_Max2] - [Position_Max]) * MIN([Curve_Function])
・Curve_Min:[Position_Min] + ([Position_Min2] - [Position_Min]) * MIN([Curve_Function])
・Curve_Polygon: CASE MIN([Min/Max]) WHEN 'Min' THEN [Curve_Min] ELSE [Curve_Max] END
4. 描画する
- 「Curve_Polygon」を行に配置する
- 「T」を最小値で列に配置
- 「Start Point」を色に、「End Point」を詳細に配置する
- マークを「自動」から「多角形」に変更する
- 「Path」をパスに配置し、ディメンションに変更する
- 「Curve_Polygon」を「表計算の編集...」から以下のように変更する
- ツールヒントや軸の編集・ソート順を変更し形を整える
5. ダッシュボードに配置
StartPointとEndPointのそれぞれの帯グラフを作成し、両端に配置するようにダッシュボードを作成して完成
6. Tを0.5刻み、1.0刻みにした場合
0.5刻みの場合
少しカクついているが、そこまで気になるほどではない(人によるかも)
ただ、データ数は少なくなるため、そこまで気にならないのでもあればよいかも