4月17日

TableauでPanel Chartを作る

公開日: 2018/10/14
 
最終更新: 2024/04/17

この記事は以下のWorkout Wednesadayの問題を参考に書いています。

Workout Wednesday WEEK 41: TOP & BOTTOM HIGHLIGHTS

この問題ではPanel Chartおよびその背景を色付けする方法について扱っています。

この問題で扱った事項をもとに、以下のようなPanel Chartを作成できるようになることを目標に解説します。

以下から、今回使ったワークブックをダウンロードできます。

https://tabsoft.co/4d1qACI

ちなみにPanel ChartはSmall MultipleやTrellis Chartと呼ばれることもありますが、この記事では一番簡単な名称の「Panel Chart」を採用します。


Panel Chartとは

Panel Chartは一つのディメンションについてグラフを格子状に並べたい場合に有効な方法です。

例えばSuper Storeのデータで「サブカテゴリー別の売上を時系列で見たい」という可視化ニーズがあるとします。

まず思いつくのは、以下のようなものではないでしょうか。

このグラフは簡単に作成できますが、サブカテゴリーのような項目数が多いディメンションについては、以下の点が問題になる場合があります。

  • グラフがつぶれていて見にくい。

    • これでは一番見たい「売上の時系列変化」が分からず、上昇傾向なのか、季節性はあるのか、などの洞察を得にくい/伝わらない。

  • 1画面で全項目を表示できなくなる場合がある

    • スクロールバーが必要になる場合を指します。つまり1画面に情報を収められないため、画像などでの共有が必要な場合には問題になり得ます。

この問題を解決するため、Panel Chartで格子状に項目を並べます。

「サブカテゴリーごとの売上の時系列変化」が一目瞭然ではないでしょうか。
 
また各グラフの縦横比が改善され、より画面を効果的かつ効率的に活用できるようになりました。


Panel Chartの作り方

Ppanel Chartは基本的には1つのディメンションを格子状に並べます。

格子状に並べるため、ディメンションの各項目について、対応する行と列の値を与えます。

そのために以下の計算フィールドを作成します。

Row Divider
 
INT((INDEX()-1)/(ROUND(SQRT(SIZE()))))

Column Divider
 
INT((INDEX()-1)%(ROUND(SQRT(SIZE()))))

この計算式について、以下に解説用のスライドを用意しました。

Panel Chart自体は上記の計算フィールドがあれば作成できますので、内容にご興味あればご覧ください。

https://www.slideshare.net/YoshitakaArakawa/panel-chart

作成したRow Dividerを行に、Column Dividerを列に、Sub Categoryディメンションを詳細マークに置きます。

その後、Row DividerおよびColumn Dividerの表計算がSub Categoryを使用するように設定すると、各サブカテゴリに対応した行と列の値が表示されます。

今回はサブカテゴリごとの線グラフをPanel Chartで作成するため、最終的には以下のような配置になります。


ちなみに:格子が横長となるように並べたい場合

上記の方法で簡単にグラフが格子状に並ぶのですが、項目数の平方根が整数とならない場合、格子は縦長となるように並びます。

例えばサブカテゴリは17項目あるため、上述のように5行 x 4列に並びます。

もしデザイン上の都合から横長となるように並べたい場合は、以下の計算フィールドを作成し使用ください。

Length
 
INT(SQRT(SIZE()))
 
+ IIF(
 
SQRT(SIZE()) - INT(SQRT(SIZE())) > 0
 
, 1
 
, 0)

Row
 
INT(INDEX()/[Length])
 
+ IIF(
 
INDEX()/[Length] - INT(INDEX()/[Length]) > 0
 
, 1
 
, 0)

Column
 
INDEX() - [Length]*([Row]-1)

以下注釈です:

  • LengthはCEILING(SQRT(SIZE())と同様

  • RowはCEILING(INDEX()/[Length])と同様

  • ただしCEILING()は表計算を引数にできないため、この実装で代替している。

以下は実際にそれぞれ並べた結果です。左が縦長、右が横長レイアウトです。

ラベルにINDEX()とサブカテゴリの値を表示しています。

以下の内容は縦長レイアウトを使用して進みますが、必要に応じて横長レイアウトもお使いください。

また、もし1辺の長さを固定したい場合には、以下の記事を参照ください。

Panel Chartで1辺の個数を指定する


背景をハイライトする

最後に背景ハイライトについて簡単にご紹介です。

グループによる色付けと、数字による色付けを両立させた棒グラフと同様に、MIN(1.0)を使用した2重軸を作成します。

ポイントはMIN(1.0)を「エリアチャート」で使うことです。

縦軸の範囲を調整することにより、背景のように使うことができます。

例えばこれを「全体Profitが1位と最下位をハイライトしたい」という場合、下図の左側のようにできます。

右側は合計Profitで色付けし、SalesとProfitの様子を一枚で見てみたい場合です。

色付けの詳細な方法については、ぜひワークブックをダウンロードして確かめてみてください。


欠損値がある場合について

ここまでのPanel Chartの作り方について、月次の売上を線グラフで表示する方法を例に扱いました。

ただし、この記事で扱った方法は表計算を使用して自動的に行と列の値を与える方法を使用しているため、欠損値が含まれる場合にはPanel Chartが崩れることがあります。

そのような欠損値のある場合について、以下の記事で詳しく取り上げました。
 
こちらも是非ご覧ください。

Panel Chartと欠損値、NULLマークの話


最後に

この記事ではPanel Chartについて解説しました。

項目数の多いディメンションについての可視化に際して、ダッシュボード画面を効果的に使用できる、有用なチャートだと思います。

ぜひ使ってみて下さい。

質問などありましたら、XかLinkedinまでお願いします。