Tableau(タブロー)のサンキーダイアグラムを最短コースで実現する
Tableau(タブロー)のサンキーダイアグラムを最短コースで実現する
はじめに
Sankey diagram(サンキーダイアグラム)とは、工程間の流量を表現する図表です(Wikipedia)。Tableau(タブロー)のギャラリーでも時々目にしますが見栄えの良さと引き換えに、作成はかなり面倒な部類のチャートです。ベン図に匹敵する面倒臭さです。さらに、作った工数と比較して有効なインサイトが出にくい面もあり、費用対効果に優れているとはなかなかいいづらい側面があります。
先日、クライアントにどうしてもこのサンキーダイアグラムを作りたいと依頼を受け、私も躊躇していたこのサンキーダイアグラムについに手を出してしまいました。その折、すでに参考サイトに先人たちの足跡がありましたのでこちらを模倣しております。見れば見るほど、一から自力で作れる気がしません。まずは、下記サイトを一読いただくと良いと思います。
1点だけ注意が必要です。サンキーダイアグラムで正確な数値や小さな差異を比較・判断するために使用することをお勧めいたしません。構造上、不向きです。幅という視覚的情報から得られる「割合」をざっくり雰囲気として掴む程度で使用するチャートであることを明記しておきます。
参考サイト
・https://public.tableau.com/profile/andy.kriebel#!/vizhome/VisualVocabulary/VisualVocabulary 【Flow】
・https://community.tableau.com/docs/DOC-9845
・https://www.principle-c.com/column/tableau/tableau-sankey-diagram
今回の最終アウトプット
今回の題材は、模式化されたメールマーケティングデータの一部だけを可視化したものをご紹介します(メール開封・未開封)です。下段の図は、メールキャンペーンCがよく開封されていることを示しております。
サンプルデータ
・ファイル結合
key列は、メルマガキャンペーン.csvと、t_simple.csvを単純結合するためだけに後付けされた結合キーです。やろうとしていることは行単位でデカルト積を作ろうとしております。いずれにせよ、6 x 26 = 156行のレコードが生成されます。
手順
それでは早速作っていきたいと思います。
手順)
① 計算式フィールドを10個作成します。
Flow Size
SUM([Value])/TOTAL(SUM([Value]))
Max Position 1
RUNNING_SUM([Flow Size])
既定の表計算 をクリック。
次を使用して計算:詳細を選んで下記を設定してください。場所の指定の順番を厳密に。
Max Position 2
RUNNING_SUM([Flow Size])
場所の指定の順番を間違わないように。
Min Position 1
RUNNING_SUM([Flow Size])-[Flow Size
場所の指定の順番を間違わないように。
Min Position 2
RUNNING_SUM([Flow Size])-[Flow Size]
場所の指定の順番を間違わないように。
Sigmoid
1/(1+EXP(1)^-[t])
Curve Max
[Max Position 1]+(([Max Position 2]-[Max Position 1])*ATTR([Sigmoid]))
Curve Min
[Min Position 1]+(([Min Position 2]-[Min Position 1])*ATTR([Sigmoid]))
Curve Polygon
CASE ATTR([Min or Max])
WHEN ‘Min’ THEN [Curve Min]
WHEN ‘Max’ THEN [Curve Max]
END
Step Size
SUM([Value])/TOTAL(SUM([Value]))
② メインフローを配置する
a) tを列に配置。ディメンションに変更。
b) campaignを色に配置する。
c) Deliveryを詳細に配置する。そのあと、左のアイコンをクリックして色に変更する。
d) Curve Polygonを行に配置する。
e) Min or Max を詳細に配置する。この時点で曲線が表示される。
f) パスに、Pathを配置する
g) マークを多角形に変更する
h) 色をクリック、透明度を50%くらいをめどに適度に下げる。また、グリッド線を水平、垂直両方とも消す。ゼロ行ラインも消す。
i) X軸、Y軸それぞれ、ヘッダーを消す
この時点で曲線をもっともっと滑らかにしたい場合は、下記のCSVに差し替えるとより滑らかになります。
t_simple.csv → t.csv
j) キャンペーンの並び替えを、AからCに並べ替えます。
マークカードに配置されたcampaignとDeliveryを右クリック、並べ替え、アルファベット順&降順に設定します。
③ 左側のバーを配置する
シートを別立てします。あとで、ダッシュボードで使用します。
a) Valueを行に配置、平均に変更します。
b) campaignを色に配置します。上から、キャンペーンA,B,Cであることを確認します。
c) campaginとStep Sizeをラベルに配置します。Step Sizeが%表記になっていなければ書式設定から変更します。
d) ヘッダー、グリッド線を消しておきます。
④ 右側のバーを配置する
シートを別立てします。あとで、ダッシュボードで使用します。
a) Valueを行に配置、平均に変更します。
b) Deliveryを色に配置します。上から、未開封、開封であることを確認します。そうでない場合は、手動で入れ替えてください。
c)DeliveryとStep Sizeをラベルに配置します。Step Sizeが%表記になっていなければ書式設定から変更します。
d) ヘッダー、グリッド線を消しておきます。
⑤ ダッシュボードにまとめ、ハイライトアクションを設定する
a) 水平方向オブジェクトを配置する
b) 左から、③→②→④の順番に配置する。
c) 凡例を全部消す。
d) タイトル表示をすべて消す
e) ダッシュボードアクションから、ハイライトアクションを設定。
f) 動作確認する
開封バーにマウスオーバーして、キャンペーンA,B,Cのそれぞれから開封フローが設定されていることを確認する。同時に、開封率が23.3%(700/3000)で計算されていることを確認する。
まとめ
今回は、平成最後のサンキーダイアグラムの作成手順をまとめてみました。すでにある参考サイトと趣旨は同じですがよりシンプルなデータでまとめてみました。個人的には、費用対効果がなかなか出づらいチャートではありますがメールマーケティングのようにフローがシンプルなものに関しては採用するのもアリかと思います。今回は、単純に開封されたか否かでしたが、費用対効果を度外視すると、配信→開封→クリック→訪問→2ページ目→CVという可視化もできると思います。これを機に、ぜひ、サンキーダイアグラムをトライしていただけると幸いです。
コメントを投稿するにはログインしてください。