top of page

TableauでPanel Chartを作る


今回のテーマはPanel Chartです。

むかし自分で作ったパネルチャートVizがあったのですが、Workout Wednesday WEEK 41: TOP & BOTTOM HIGHLIGHTSにインスパイアされて、パネルチャート解説記事&背景ハイライトの方法を書こう、と思い立った次第です。

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

https://public.tableau.com/profile/yoshitaka6076#!/vizhome/PanelChart_5/sheet0?publish=yes

 

【そもそもパネルチャートとは?どういうときに使うもの?】

(ちなみにパネルチャートはスモールマルチプルチャートとも呼ばれますが、ここでは呼びやすい前者で。)

まず最初に、おなじみSuper Storeのデータで「サブカテゴリー別の売上を時系列で見たい」という可視化ニーズがあるとします。

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


このLine Chartの羅列、いかがでしょうか。僕は結構つらいんじゃないかな、と思います。

なぜなら

・グラフがつぶれていて見にくい。これでは一番見たい「売上の時系列変化:上昇傾向なのか、季節性はあるのか、etc...」が伝わらない。

・同じグラフが縦並びになると、サブカテゴリーとグラフを対応させるのが辛い(特にグラフ後半)。

このようなときに、パネルチャートは強力です。


「サブカテゴリーごとの売上の時系列変化」が一目瞭然ではないでしょうか。

元々のVizの問題は「画面の使い方」でした。

パネルチャートのパワーは「画面を最大限活用できる」ということにある、と思います。

 

【パネルチャートの作り方】

まずは「どうパネル」を作るかを解説します。今回のような、1つのディメンションでパネルを作る場合は、以下の数式を使用します。

Row Divider

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

Column Divider

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

RowとColumnの違いは、Rowが割り算の「商」を求めているのに対し、Columnが割り算の「余り」を求めている点です。

今回の場合、これをサブカテゴリーを使用して計算させ、下図のように配置すれば完成です。


しかしながら、Row DividerとColumn Dividerの計算式は、ちょっと直感的にわかりにくいのでは、と思います。これを解説した(厳密にはしようとしたが、分かりやすいのか不安)スライドを以下にご用意しました。

(正直なところ、パネルチャートは計算式コピペで十分なほど簡単なので、興味のある方はどうぞ、くらいです。)

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


 

【バックグラウンドをハイライトする方法】

最後に背景ハイライトの方法です。

(実は最近まで、ColumnとRow両方にメジャーが入っているとき、背景ハイライト系の手法が使えないと思っていました)

やること自体は以前の記事「グループによる色付けと、数字による色付けを両立させた棒グラフ」と同様に、MIN(1.0)を使います。


ポイントはMIN(1.0)を「エリアチャート」で使うことです。縦軸の範囲を調整することにより、背景のように使うことができます。

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

それぞれの総Profitで色付けして、SalesとProfitの様子を見てみたいという場合は右図でしょうか。

サブカテゴリーは全体Salesでソートされています。ProfitとSalesをセットで見やすいですね。

左図のProfitトップor最下位をハイライトする計算式は、ぜひワークブックをダウンロードして確かめてみてください。LOD計算のいい練習だと思います。

 

【ちなみに】

最新版のSuperstoreデータは欠損値もあるようで、その場合にパネルチャートでLine Chartを使ったときに、下図みたいになるようです。

直し方は調査します。とりあえずはBar Chartで何とかなる感じです。


【11/3 追記】

治りました。Tableau Publicのファイルもアップデートしましたので、詳細はそちらに。

簡潔に言えば

・SUM(Sales)の代わりにZN(SUM(Sales)) + INDEX() - INDEX()で、欠損値に0を当てはめる

・日付の「欠損値を表示する」オプションをチェックする

この2点で大丈夫でした。


【2020/12/10 追記】

欠損値のある場合について、以下の記事で詳しく取り上げました。

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


 

今回はパネルチャートをご紹介しました。いかがだったでしょうか。

コメント、フィードバック等をTwitter, Linkedinでいただければありがたいです。

お題のリクエストも歓迎します。

#Tableau

bottom of page