Tablau desktopでサンキーチャートを作成する方法について

はじめに

はじめまして。じろーと申します。
DATA Saber Boot Campを機に、Tablauを使い始めた初学者ですが、
Boot Campの中で発見したことや学んだことを書き記していきたいと思い、この記事を書いております。

初回は、Tabalu desktopでサンキーチャート(sankey diagram)を作成する方法について、誰でもできるやり方で紹介したいと思います。

サンキーチャートとは?

まず、サンキーチャートって何ぞやという話ですが、下記の通りです。

サンキーダイアグラムとは、工程間の流量を表現するグラフです。フローチャートのように各工程間の流れをみながら、線の太さによって表現される流れの量を確認できます。化学工学、環境工学、物流管理等の分野でシステム内の各プロセス間の流量を表す為に使われ、エネルギー収支の視覚化のために使用されてきました。
近年では、集めた税金とその使い道を表現するときや、Webマーケティングにおいてサイト内でのユーザーの動きを分析するときなど幅広く利用されています。

https://www.lightstone.co.jp/origin/feature/sankey.html
サンキーチャート

上記のようなグラフをサンキーチャートと呼んでいます。

サンキーチャートを作成する方法


Tablauでのサンキーチャート作成方法については、2023/5/16 現在2パターンあります。
1つは、Tablau Public上で作成する方法。
もう1つは、Tablau desktopで作成する方法です。

1つ目の、Tablau Publicで作成する方法については、「マーク」に『サンキー図』という機能があるため、そちらを利用すれば作成できます。

Tablau Publicの画面

ただし、(私が所属している企業がそうなのですが)個人情報を扱っていたり、厳格なセキュリティが敷かれている企業の場合、Tablau desktop上で社内データが扱えない場合があるため、業務に使えないというデメリットがあります。

2つ目の方法のTablau desktopで作成する方法であれば、Tablauを導入していれば、作成可能な方法なので、この場で説明したいと思います。

Tablau desktopでのサンキーチャート作成方法について

サンキーチャートを作成する流れは、大きく以下の通りです。

Step1 データの準備
Step2 計算フィールド作成
Step3 各要素を配置
Step4 始点と終点の構成比を作成
Step5 ダッシュボード化

上記5stepについてこれから解説していきます。

Step1 データの準備

まず、始点と終点の要素(ディメンション)と構成比の要素(メジャー)が含まれる分析元データをTablauに取り込んでください。

次に、サンキーチャート特有のS字カーブを描かせるために使用するcsvファイルを取り込み、分析元データと紐づけてください。

取り込む際に、それぞれ「結合計算の作成」で「1」を入力し、内部結合します。(これにより、分析元データ1行毎にcsvファイルのすべての行(97行)が結合されることになります。データ量100倍になるので注意)

csvファイルの結合方法

Step2 計算フィールドを準備する

多くの計算フィールドを作成するので、分かりやすくするためにも、
2つのフォルダに分けて作成します。(太字以外はすべてコピペでokです)

①「basic」フォルダ
Dim1: 始点となるディメンション
Dim2: 終点となるディメンション
Chosen Measure: 構成比を図るメジャーの合計

Sankey Arm Size: [Chosen Measure]/TOTAL([Chosen Measure])
          ~メジャーの構成比を表す計算フィールド
Curve Function: 1/(1+EXP(1)^-[T])
     ~シグモイド関数(S字カーブを描いてくれるありがたい関数)※上記に加え、「Path」と「T」もbasicフォルダに移動させておくと良い

②「Position」フォルダ
Position 1 MAX: RUNNING_SUM([Sankey Arm Size])
Position 1 MIN: [Position 1 MAX] - [Sankey Arm Size]
Position 2 MAX: RUNNING_SUM([Sankey Arm Size])
Position 2 MIN: [Position 2 MAX] - [Sankey Arm Size]
Curve 1-2 MAX: [Position 1 MAX] + ([Position 2 MAX] - [Position 1 MAX]) * MIN([Curve Function])
Curve 1-2 MIN: [Position 1 MIN] + ([Position 2 MIN] - [Position 1 MIN]) * MIN([Curve Function])
Curve Polygon 1-2:  CASE MIN([Min/Max]) WHEN 'Min' THEN [Curve 1-2 MIN] ELSE [Curve 1-2 MAX] END

Step3 各要素を配置

  1. 「T」を最小値で列に配置。

  2. 「Dim1」を色に配置。

  3. 「Dim2」を詳細に配置。

  4. マークを多角形に変更。

  5. 「path」をパスに入れ、ディメンションに変換。

  6. 「Curve Polygon 1-2」を行に配置。

  7. 「Curve Polygon 1-2」 の表計算を編集。

1.~6.の設定方法
7.の設定方法
※Dim1,Dim2の並び順が始点と終点に影響

Step4 始点と終点の構成比を作成

始点と終点の構成比をそれぞれ作成する。
並び替えをうまく活用し、Step3で作成したものと並び順を揃える。

設定例

Step5 ダッシュボード化

Step3とStep4で作成したシートをダッシュボードでまとめる。

ダッシュボードでまとめたもの

おわりに

以上が、Tablau desktopでのサンキーチャート作成方法となります。
計算フィールドを準備する部分で、難しい関数や計算式が出てきますが、
誰でもできるようになることを目指していたので、コピペすれば、作成できるようになっています。

この記事を作成するにあたり、Arakawaさんのこちらの記事を参考にさせていただきました。

別の記事で、計算式などの詳細を解説いただいておりますので、興味のある方は読んでみてください。

それでは。


この記事が気に入ったらサポートをしてみませんか?