データ可視化のアイデア帳

データ可視化にまつわるあれこれ

画像はデータを補足する ‐ ダッシュボードで画像を使う場合に気を付けること

最近、全面画像+シンプルなチャート (とその説明) といった構成のダッシュボードをよく見かけるようになりました。これは、Tableau 2018.3 かワークシートの背景色を「透過(色なし)」に設定できるようになったことで、写真の上にチャートを重ねられるようになった影響が大きいと思います。画像の上にチャートを配置すると、一見してとても美しい見た目のダッシュボードになるため非常に簡単にデータにインパクトを持たせることができます。一方で写真は情報量が多いためデータを補足するどころかデータの邪魔をしてしまう可能性も否めません。

もともとこの記事を書こうと思ったきっかけが MakeOverMonday W14 なのですが、この週のデータはどうもどシンプルだったようで画像を多用したダッシュボードが相当数乱発されていました。特に気になったのがこれ。(作者の方ごめんなさい) *1
f:id:zkn360:20190412165535p:plain

これのどこが気になるかという点をまとめたのがこちら。せっかくのデータを画像がむしろ邪魔してしまっているのがわかります。
f:id:zkn360:20190412165621p:plain

逆に、画像を上手に使用しているなと思ったのがこちら。シンプルですがうまく海のデータであることと主張を画像でさりげなく伝えています。
f:id:zkn360:20190412165638p:plain
https://public.tableau.com/profile/katie.bridges#!/vizhome/UKBeachLitteringMakeoverMonday2019Week14/UKBeachLitteringMakeoverMonday2019Week14


というわけで今回はダッシュボードやプレゼンテーションを作成するときに使用する画像の注意点について私なりにまとめていきます。

画像の情報量はデータの情報量を超えるべきでない

これに尽きます。あくまでデータを補足する、増強するのが画像を使用する目的なので画像の情報量をいかにして押さえるかが肝心です。

どんな画像を使うべきか

ではまずどんな画像を選ぶべきかについて考えてみます。

1. 著作権の確認が取れている画像

意外と多いのが、Google で検索した画像を使っていますというパターン。画像は当たり前ですが著作権があります。もし Tableau Public に公開する、コンペに使うといった場合に著作権侵害に該当したらどんなに Viz が素晴らしくてもアウトです。必ず著作権フリーの画像もしくは自分で撮影した画像を使用すべきです。

著作権フリーの画像サイトをまとめているのがこちら。
webdesign-trends.net

日本ではこの PAKUTASO も有名なようです。面白画像が多かったので一応紹介します。
www.pakutaso.com

2. 高画質の画像

画像がダウンロードできるサイトでは概ねサイズが選べるので、できる限り高画質のものを選びましょう。
f:id:zkn360:20190412165743p:plain
この後の画像加工の話でもしますが、画像は基本トリミングして拡大します。拡大した時に画像が荒くてドット絵のようにならないように、画像はできるだけ高画質のものを使用します。これは解像度の違う同じ画像を (ほぼ) 同じ部分を切り出して比較したものです。低画質のものはぼやけた印象になってしまっています。
f:id:zkn360:20190412165755p:plain

3.表現したい内容に沿った画像

自分が伝えたいストーリーに沿った画像を選びます。ストーリーと関係ない画像が入っていると内容に集中できなくなって何にも頭に残らなくなってしまいます。*2ネタで作ったのがこちら。どんなメッセージがあったか、メッセージと牛は関係あったのか、全くわからないと思います。しかもおそらくは「変な牛の画像」という印象しか残らないでしょう。
f:id:zkn360:20190412165836p:plain

4. 自然な画像

どんなにシンプルな画像だったとしても、画像は画像であるだけで情報量が多いです。そこに不自然な要素が加わるとよりおかしな点に見る側は注意をそらされてしまいます。通常存在しえない組み合わせのものが映っている、おかしなライティングがされている等です。

5. 人が映っている画像

人の表情は多くの情報を含んでおり、見た側が様々に解釈する余地があります。逆に言うと解釈する余地があるが故に、情報発信者側の意図しない意味として受け取られてしまう可能性があります。例えばこの画像、元サイトでは「下積み時代の苦労話をする起業家のフリー画像」というタイトルがついてましたが、人によっては「上司に詰められる部下」とも「寝坊して気まずい感じになってる人」とも受け取れるように思います。*3
f:id:zkn360:20190412165858j:plain
https://www.pakutaso.com/20180548128post-16091.html

人の画像を使う場合はより伝えたい部分にフォーカスした画像を使う、トリミングするべきです。例えば「最近の会議では PC で議事録を取るのがスタンダードだ」ということを伝えたい場合、会議室全体の写真を使うよりPC でメモを取っている部分にフォーカスしたものの方がよりストレートにメッセージが伝わるということ。

6. データ (っぽいもの) が入っている画像は避ける

これはダッシュボードに限った話かもしれません。よくタブレットや PC の画像だと、画像中にグラフやダッシュボードが含まれていることがあります。単純にグラフの上にグラフを重ねたら見づらいですし、混乱のもとです。そう考えると画像にデータやグラフが含まれるものは避けた方が無難と言えます。もうひとつ、直線っぽい絵が入ってるのも要注意かなと個人的には思います。チャートと交差してしまう可能性が高く、またチャートの意味をミスリードする可能性が否定できないからです。(この記事の最初の例もそうです。)

画像の情報量を減らす方法

使う画像が決まったら、画像の情報量を減らしてデータが際立つように調整しましょう。基本の手法はトリミング→拡大です。余談ですが、特別なソフトのインストールが不要という点で PowerPointWindows に付属のフォトが便利だと個人的には思っています。*4画像を拡大縮小するときに注意すべきは縦横比です。通常画像編集ソフトは元の縦横比を維持する設定がほとんどですが、意図的に縦横比を変えることができる場合不自然な感じになってしまいがちです。PowerPoint で言うと画像の書式設定の「縦横比を固定する」という箇所です。
f:id:zkn360:20190412170335p:plain

1. オープン スペースを作る

要は余白を作って文字やデータを邪魔しない空間を作りましょうってことです。もともと余白の多い画像を使うのも一手です。よくある画像でいうとこんな感じ。
f:id:zkn360:20190412170049j:plain

もしくは全画面に画像使うの自体をやめるのもアリかもしれません。その時は画像の開始位置がデータと重ならないようにするのがポイント。

2. 色数を減らす

色は以前ダッシュボードのデザインでも言及した通り、情報伝達に重要なポイントになります。そのため、画像中に含まれる色が余計な意味を想起させてしまう場合があります。それでもその画像を使いたい場合、思い切って画像をモノクロもしくはセピアにしてしまいましょう。画像の色を変えるくらいだったら、PowerPoint の図ツールの色の設定からできちゃいます。もしくは Windows フォト アプリのフィルターでもできます。
f:id:zkn360:20190412170214p:plain

3.レイヤーを重ねる

画像上に若干の透過率の領域を重ねて文字やデータが見えるようにするという方法です。レイヤーは画像全体に重ねても、部分だけでも効果的です。わかりやすい例で言うとこちら。*5
f:id:zkn360:20190412170351p:plain
https://public.tableau.com/profile/lm.7#!/vizhome/Landusepergramofproteinbyfoodtype/1


結局のところ、画像を使うにしてもいかに情報を制御するかという点に尽きますね。いっそ写真的な画像ではなく、イラストやフラット アイコンといった画像を使用するのもシンプル化に役立ちそうです。


この記事を書くにあたり、下記のブログを参考にしました。PowerPoint の作り方ガイド 125 ページも何と無料でダウンロードできちゃいます。文字や色彩についても言及されてるので、データ可視化する人も目を通しておいて損はないと思います。
visme.co

*1:ちょっとあまりにもアレなので、出典は差し控えさせていただきました。

*2:ビジュアル アナリティクスで言うところの視界の分断

*3:少なくとも私は。

*4:スマホなら簡単なアプリが色々あるんですけど、細かい調整をするのはやっぱり PC で作業したい。

*5:さすが LM-7 さん

Tableau 書式設定 - 線を極める

Tableau の最も難しい分野をご存知でしょうか。それは書式設定です。Tableau はデフォルトである程度美しい見た目が作成されますし、カスタマイズも事細かにできるのです。その事細かにできるがために、逆に難しいこととして知られる書式設定。そんな書式設定を極めた人に贈られる称号を、Tableau Sen Master と言います。
f:id:zkn360:20190330172635p:plain

この度 Tableau Sen Master の称号を受けましたので、Tableau の書式設定、特に線についてまとめてみようと思います。

線の書式設定は、枠線と線の 2 種類がある

これが最も書式設定を難しく感じさせる原因と言っても過言ではありません。書式設定を行う時、どれがどの線?と悩むことが多いのはこのせいです。
f:id:zkn360:20190330180121p:plain

設定対象は、シート (全体)、行、列の他特定のフィールドも選べる

単純に行と列を指定するだけでなく、フィールドも指定することができます。これがあることで、同一シート内であってもフィールドごとに色を変えることができます。
f:id:zkn360:20190330180351p:plain
例えばこれは (線ではありませんが) 一例です。フィールドごとにタイトルのフォントを別々に指定しているため、フィールド内での文字色が異なっています。(棒グラフ自体の色はもちろんマーク カードの「色」で設定を行っています。)
f:id:zkn360:20190330180953p:plain

どれがどの線かを知る

ここがこの記事の本題です。すべてを網羅するのは大変なので、シンプルな画面を例に説明していきます。

枠線の書式設定

行と列の境界線

それぞれ赤と青の線で設定してみました。比較的ここはわかりやすいと思いますs。
f:id:zkn360:20190330181337p:plain

実際の Viz で見てみるとこんな感じになります。
f:id:zkn360:20190330181451p:plain

行と列の境界線にはレベルがある

行と列の境界線の下部にはレベルという箇所があり、それぞれスライダーで移動できるようになっています。大雑把に言うと、右に動かすとより細かく線を入れることになり、左に動かすとより大きな枠で線を入れる形になります。(相対的に線の本数が減って見える)

行の境界線のレベルを右に動かすと、ヘッダー部分にかかる線が確認できます。
f:id:zkn360:20190330181702p:plain

同じように列の境界線レベルを右に動かすと、セルごとに線が入ります。
f:id:zkn360:20190330182144p:plain

今度は列の境界線レベルを左に動かすと、ペインの境目の線が消えます。
f:id:zkn360:20190330182131p:plain

目盛り線の書式設定は「線」の書式設定

上記のような図だと、目盛りの線をカスタマイズしたいという要望もあると思います。ここが、難しい。というのは、目盛りの書式設定は枠線の書式設定ではなく「線」の書式設定だからです。*1しかも線の書式設定もどれがどの線かというのが見つけ辛いのが実情です。

ちなみにチャート内の領域の目盛り線はなんと「グリッド線」の設定です。
f:id:zkn360:20190330182558p:plain

線の書式設定には「軸ルーラー」もあるのですが、これは目盛りとチャートの間をつなぐ線の書式設定です。*2
f:id:zkn360:20190330182650p:plain


とりあえずこの辺りがサクサク設定できると、だいたいのチャートの書式設定はうまくいくと思います。

書式設定は表現の種類を増やす一手

ところでなんで書式設定なんかやらなきゃいけないのかというと、ひとつは既存のチャートを Tableau に置き換えるために全く同じ見た目を求められたときというのが代表的なシチュエーションかと思います。そういう場合は粛々とやってください(笑) それ以外のシチュエーションがあるのかということで、ひとつ紹介しておこうと思います。それが Viz in Tooltip です。Viz in Tooltip をどういう風に使うとカッコいいか?ということを考えていた時に、下記のブログに出会いました。このブログでは Viz in Tooltip の利用法をいろいろ検討しているのですが、その中でツールヒント内のセクションを空のシートの書式設定で作ってしまうという技を紹介しています。書式設定がこんなことにも使えるのかと驚いたのを覚えています。*3ぜひみなさんも書式設定をマスターして Tableau Sen Master の称号を手に入れてくださいね。
www.dataplusscience.com

*1:毎度毎度どこの設定だったか探してます…この記事書いてる時も結構探した。

*2:これがわかりにくいと思うのは私だけ?

*3:案の定再現は結構大変だった。

ツールの使い方がわからないといって分析ができないわけではない (Viewer だって分析できるもん!)

Tableau の基本的なライセンス形態は、CreatorExplorer、Viewer の 3 種類です。*1それぞれ分析の各フェーズにおける役割が違います。Creator はデータの接続、整形、分析、共有などのすべてを行うことができ、使用できる製品は Tableau Prep、Tableau Desktop、Tableau Server (もしくは Online) です。Explorer と Viewer は Tableau Server (Online) を使用します。Explorer は 用意されたデータソース (tds) を元に新規ワークブックの作成や既存ワークブックの編集を Tableau Server 上で行うことができるのが特徴です。一方 Viewer は Creator もしくは Explorer が作成したワークブックの閲覧と、フィルターやパラメーターの操作を行い、ワークブック自体の作成や編集は行いません。

f:id:zkn360:20190319152606p:plain
※ あくまで筆者の理解です。細かい違いは必ず最新の情報を確認ください。

一般に、Viewer はデータを見て判断する人ということで、Viewer 自ら分析をするということは想定されていません。*2なので、Viewer の人たちは Tableau の Viz の作り方も知らないし、特段知る必要もないわけです。が、こういった棲み分けだと Viewer の人たちに必要だと言われるがまま Viz を作りまくり、ワークブックの作成とメンテに追われる Creator が疲弊していくという問題が発生しがちです。そこで、Viewer ライセンスでも操作でき、なおかつ操作が簡易なものを作れないか、というのが今回の記事です。(前振りが長くてすみません。。)

結論から言ってしまうと、今回は基本のパラメーターの使い方でこんなの出来たよ!って感じのご紹介です。出来上がりイメージはこちら。ユーザーが散布図の縦軸と横軸を (用意された項目から) 自由に設定でき、分析の粒度 (マークの粒度) とついでにメジャーによる色付けもできるようにしちゃおう!ってものです。これなら Creator がひとつダッシュボード作っておけば、あとは Viewer が好きに操作するだけ!メンテもダッシュボードひとつ分で済みます。

というわけで作り方はこちらから。

1.パラメーターの作成

ユーザーが項目を選択できるよう、パラメーターを作成します。

1-1.縦軸

縦軸でも横軸でも良いのですが、散布図の軸をどの数値にするか選択するためのパラメーターを作成します。パラメーターの作成から、プロパティを文字列、許容値をリストにします。許容値のリストにはデータソースに含まれるメジャー値を適宜リストアップしていきます。
f:id:zkn360:20190319154154p:plain

1-2.横軸

縦軸パラメーターを複製して、リネームします。以上。
f:id:zkn360:20190319154500p:plain
f:id:zkn360:20190319154514p:plain

1-3.集計の粒度

集計の粒度を指定するためのパラメーターを作成します。縦軸、横軸はメジャー値から作成したのに対し、今度はディメンションを適宜設定していきます。
f:id:zkn360:20190319154651p:plain

1-4.色付け基準

今回はメジャー値を元に色付けするようにしたので、またも縦軸 (もしくは横軸) 用に作成したパラメーターを複製して、リネームします。ただし、色付けは不要という人のために、リストに「なし」という項目を加えておきました。
f:id:zkn360:20190319154913p:plain

2.計算フィールドの作成

たまにパラメーターを作成したのに画面に反映しない!というお問い合わせをいただきますが、パラメーター単体では何にもなりません。パラメーターを変数として変化する項目を作成しましょう。

2-1.縦軸

f:id:zkn360:20190319155218p:plain
CASE [パラメーター].[縦軸]
WHEN "売上" THEN [売上]
WHEN "利益" THEN [利益]
WHEN "割引率" THEN [割引率]
WHEN "数量" THEN [数量]
WHEN "出荷日数" THEN [出荷日数]
END

2-2.横軸

縦軸の計算フィールドを複製してリネームと、対象のパラメーターを変更しておきます。
f:id:zkn360:20190319155501p:plain
CASE [パラメーター].[横軸]
WHEN "売上" THEN [売上]
WHEN "利益" THEN [利益]
WHEN "割引率" THEN [割引率]
WHEN "数量" THEN [数量]
WHEN "出荷日数" THEN [出荷日数]
END

2-3.集計の粒度

軸とほぼ一緒です。
f:id:zkn360:20190319155614p:plain
CASE [パラメーター].[集計の粒度]
WHEN "オーダーID" THEN [オーダー ID]
WHEN "カテゴリ" THEN [カテゴリ]
WHEN "サブカテゴリ" THEN [サブカテゴリ]
WHEN "出荷モード" THEN [出荷モード]
WHEN "地域" THEN [地域]
WHEN "製品名" THEN [製品名]
WHEN "都道府県" THEN [都道府県]
WHEN "顧客名" THEN [顧客名]
WHEN "顧客区分" THEN [顧客区分]
END

2-4.色付け基準

軸の計算フィールドを複製してリネーム、対象のパラメーターの変更、あと「なし」選択時の項目を追加しておきます。
f:id:zkn360:20190319155951p:plain
CASE [色付け基準 (メジャー値)]
WHEN "売上" THEN [売上]
WHEN "利益" THEN [利益]
WHEN "割引率" THEN [割引率]
WHEN "数量" THEN [数量]
WHEN "出荷日数" THEN [出荷日数]
WHEN "なし" THEN NULL
END

似たような作業を延々やっていくだけといえばやっていくだけですね。

3.Viz の作成

3-1.基本の画面構成

列シェルフに [横軸] (計算フィールド) 、行シェルフに [縦軸] (計算フィールド) 、詳細に [集計の粒度] (計算フィールド) 、マークシェルフの色に [色付け基準] (計算フィールド) を配置します。それと、各パラメーターはパラメーター コントロールの表示をチェックして、パラメーター値を変更できるようにしておきましょう。
f:id:zkn360:20190319160345p:plain

これだけでも十分なんですが、ユーザー フレンドリーにするために少し見た目の調整をしておきます。

3-2.軸の調整

まず選択した項目が何なのかわかるようにしておきます。列シェルフに [横軸] (パラメーター) 、行シェルフに [縦軸] (パラメーター) を追加します。
f:id:zkn360:20190319160622p:plain

こうなると、[横軸] とか [縦軸] とか表記されているのが邪魔なので、軸の編集で軸の名前を非表示にします。どのバージョンから名前を入力しないのができるようになったんだっけ…
f:id:zkn360:20190319160730p:plain

パラメーターのフィールド ラベルも余分なので非表示にします。画面は列のフィールド ラベルですが、行のフィールドラベルも非表示にしてください。
f:id:zkn360:20190319160845p:plain

これでだいぶすっきりしたはずなので、後はダッシュボードでユーザー フレンドリーに!かわいらしく!使いやすい感じに編集してください。ダッシュボードの操作方法をタイトルとかに併記するとかっていう小技も地味に使えます。*3
f:id:zkn360:20190319161152p:plain

これにさらにフィルターを組み合わせたり、需要に応じてより複雑な Viz を作成することももちろん可能です。フィルターだけだとデータの「絞り込み」しかできないですけど、パラメーターを使うとより自由度の高い Viz になりますね。

*1:正確な説明はこちらをご参考ください。 www.tableau.com

*2:フィルターを駆使して自分の知りたいデータを抽出するという意味ではありません。

*3:そのうちテキスト (文字) に関する Tips も書きます。多分。

ヒストグラムと平均線 - Tableau の場合

よくある質問のひとつ「ヒストグラムに縦線 (補助線) を入れたい」というのが今回のお題です。イメージはこちら。
f:id:zkn360:20190308172027p:plain

一見簡単そうなのですが、ヒストグラムの性質と Tableau の機能の両方を知らないとできないちょっと厄介な Viz だったりします。今回はヒストグラムの作り方から始めて完成を目指したいと思います。データセットはおなじみの「サンプル - スーパーストア」です。

まずは普通のヒストグラムから

何はともあれヒストグラムが作れないことには始まりません。まずは基本の作成方法です。

表示形式からヒストグラムを作成する

最も簡単なのは、Tableau のビルトイン機能である「表示形式」を使うことです。ヒストグラムにしたいメジャーをひとつ選択すると、表示形式からヒストグラムが選択できるようになります。(今回は [利益] を使用します。)
f:id:zkn360:20190308142957p:plain

表示形式の中のヒストグラムの図を選択すると、すぐにヒストグラムが出来上がります。簡単!
f:id:zkn360:20190308143119p:plain

ビンとは

ワークシートをよく確認すると、列シェルフとディメンションに [利益(ビン)] という項目が出来ていることがわかります。このビンとは、ヒストグラムの幅のことでいわゆる階級幅のことです。*1表示形式からビンを作成すると、自動計算された値が設定されています。これを変更するにはディメンション内の [利益(ビン)] > 編集 > ビンの編集 を選択し、ビンのサイズを直接入力します。今回は 10000 を指定しました。(図はデフォルトの値になってますが汗)
f:id:zkn360:20190308143946p:plain

縦軸の編集

これで完成でもいいのですが表示形式からヒストグラムを作成した場合、縦軸が [利益のカウント] に自動的に指定されています。これを顧客数に変えたい場合はディメンションから [顧客名] を行シェルフに追加すればいいのですが、顧客名はディメンションのためメジャーに変換が必要です。行シェルフの [顧客名] > メジャー > カウント(個別)*2 を選択します。
f:id:zkn360:20190308144443p:plain

これで顧客数を縦軸とするヒストグラムができました。
f:id:zkn360:20190308144706p:plain

あとはもともとあった [利益のカウント] を削除*3します。これで単純なヒストグラムが完成しました。
f:id:zkn360:20190308144829p:plain

ビンはメジャーから直接作成可能

慣れてくると縦軸の再設定が面倒なので、いきなりビンを作成してしまった方が手間が省けます。ビンは対象のメジャーを選択 > 作成 >ビン からでも作成できます。
f:id:zkn360:20190308145029p:plain

ビンに平均線は追加できない

あとは平均線を追加するだけ、ということでアナリティクス タブから平均線を追加しようとすると問題が発生します。[利益] に対して平均線を追加したいのですが、メジャーの選択肢が表示されません。
f:id:zkn360:20190308145312p:plain

とりあえず「表全体」を選択して平均線を追加すると想定と異なる結果になります。
f:id:zkn360:20190308150157p:plain

結論から言うと見出しの通りビンに平均線が追加できないので、ワークシート内にある他のメジャー (この場合は [個別のカウント(顧客名)]) に対しての平均線が追加された形になります。


コレジャナイ!!


なんですが、諦めるのはまだ早いです。

メジャーを追加すれば平均線が利用できる

ここまでのところで「ビン」に対しては平均線*4が追加できないことがわかったので、逆にメジャーを組み合わせれば出来そうだということがわかります。ここからは機能や計算を知らないとできないのでこの記事にまとめておこうと思います。ということで手順です。

1. メジャーを追加する

列シェルフにメジャーを追加します。今回の場合は [利益] です。

2. メジャーをディメンションに変換する

追加した [利益] をクリック、メニューから「ディメンション」を選択します。
f:id:zkn360:20190311100659p:plain

3. 二重軸にして表示を重ねる

Tabloid *5にはおなじみの手順ですね。
f:id:zkn360:20190308160943p:plain

表示が重なりました。
f:id:zkn360:20190308161007p:plain

4. 軸を同期させる

Tabloid にはおなじみの手順ですね。(再) 利益軸*6をダブルクリックまたは右クリック >軸の編集 で「二軸を同期」にチェックを入れます。
f:id:zkn360:20190308161104p:plain

5. 見た目を調整する

二重軸にするとヒストグラムの表示が線グラフ表示に変わってしまっています。これを調整していきます。

5-1. 色の準備

[メジャーバリュー] が色に設定されていますが、[利益] と [利益(ビン)] で個別に色を設定したいのでまずこれを削除します。

5-2. グラフ形状の変更

線グラフを棒グラフに変更します。 5-1. と 5-2. は順不同で大丈夫でしたね…

5-3. 色の調整

実は見た目上 [利益] のグラフは表示されている必要がないので、見えないように魔法をかけます。マーク シェルフ > [利益] > 色 > 不透明度 でデフォルト 100% になっている箇所を思い切って 0% にします。
f:id:zkn360:20190308161846p:plain

これで見た目は元のヒストグラムと全く同じ形になったはずです。
f:id:zkn360:20190308161954p:plain

5. 平均線を追加する

ようやく平均線の出番です。アナリティクス タブから平均線を追加しましょう。
f:id:zkn360:20190308162049p:plain

[利益] が追加できるようになっていますので、 [利益] に対して平均線を追加します。
f:id:zkn360:20190308162142p:plain

6. 平均線を追加する (検算は確実に&リファレンス ライン)

手順 5 で平均が追加できた、終わったと思った方、それはです。この「サンプル - スーパーストア」の利益の平均額は 2739 円です。ところが上記では 3181 円とずれがあります。これは手順 1 で利益をディメンションに変換していることに由来します。ディメンションに変換した場合、複数のレコードが同じ金額だった場合、それは 1 つとしてカウントされます。つまり合計と分母がずれちゃってるんですね。これを防ぐためにリファレンス ラインを利用します。

6-1. 集計の粒度に影響を受けない平均値を作成する

Tableau はワークシート内に配置した情報を元に集計を行います。今回配置したい平均値は「すべての値の平均値」なのですがここまでの手順だと「すべての値」を表現する粒度がありません。そこで計算式を利用してワークシート内の集計の粒度に影響を受けない値を計算フィールドで作成します。計算式は下記です。(フィールド名は任意でどうぞ。今回は便宜上 [平均利益] としました。)
f:id:zkn360:20190308171305p:plain
{FIXED: AVG([利益])}

*** 6-2. 詳細に追加する
リファレンス ラインで上記の [平均利益] が反映できるよう。マーク シェルフの [利益] の「詳細」にメジャーのリストから [平均利益] をドラッグ アンド ドロップで追加します。
f:id:zkn360:20190308171527p:plain

その後でアナリティクス タブのリファレンス ラインを[利益] に対して追加します。リファレンス ラインの編集ダイアログで、線セクションの値を [利益] から [合計(平均利益)] に変更します。
f:id:zkn360:20190308171846p:plain

これで正しい平均線が追加できました。あとは 利益軸の表示をオフにする (「ヘッダーを表示」のチェックを切る)、平均線の表示を調整する、全体の色味を整える等の調整を行えば、トップに表示したような形の Viz を作成することができます。

意外と簡単なようで、奥の深いヒストグラムに補助線を追加する方法でした。もう少し追及したい方は KB も参考になります。
https://kb.tableau.com/articles/howto/histogram-of-aggregated-values?lang=ja-jp

おまけ: ビンでフィルター

あまり知られていない機能なのでここで紹介します!(笑) ビンをフィルター カードに入れると「値の範囲」というフィルターが出てきます。これはビンの数を指定してフィルターできる機能なんですね。ゼロを起点にして前後 5 つずつの階級幅だけを見たい、外れ値が遠くにありすぎて全体が見づらい時などにご活用ください。*7
f:id:zkn360:20190308172648p:plain

*1:大雑把にいうと棒グラフの太さです。

*2:COUNTD のこと

*3:外すとか取るとか言ったりします。

*4:リファレンス ラインやリファレンス バンドも同様です。

*5:Tableau ユーザーのこと

*6:後から追加した方のメジャーの軸

*7:遠くの外れ値はレコード数も少ないことが多く、選択して除外しようにも選択しづらかったり、そもそも見えなかったりすることが多いので…

今さら聞けない Tableau の拡張子とパブリッシュ

Tableau を使い始めて最初に当たるであろう壁、ファイルの保存。「名前を付けて保存」からなんとなく保存はできているものの、いざ Tableau Server にパブリッシュしようとした時に「ワークブックのパブリッシュ」とか「データソースのパブリッシュ」とか「データソースを埋め込む」とか一体何なのそれ、となった方も少なくないと思います。そこで今回はファイルの拡張子とパブリッシュの流れを整理したいと思います。
オンラインヘルプ読めばいいんですけど、オンラインヘルプってちょっとわかりにくいので、あえて砕けた口調で記述していきます。

まずは拡張子

絶対覚えるべき

正確な説明はオンラインヘルプ読んでくださいね!*1ざっくりなイメージはこちら。
f:id:zkn360:20190219171645p:plain

ワークブック (.twb)

ファイル メニューから「名前を付けて保存」を選択した時のデフォルトの保存形式。データソース (後述する .tds) は含むが、データそのものは含まない純粋なレポート部分のみ*2保存する。次回ファイルを開いたタイミングでデータソース (.tds) の情報を元にデータに接続するため、データ自体にアップデートがあればレポートの表示内容も更新される。

パッケージド ワークブック (.twbx)

ファイル メニューから「名前を付けて保存」を選択した時にファイルの種類をドロップダウン リストで変更した場合の保存形式。ワークブック (.twb) に加えて、ローカルのデータ (ExcelAccess など) と背景イメージなどを含むファイル。Zip 形式なので解凍してワークブック (.twb) とデータ部分に分けることができる。

わざわざデフォルトの保存形式 (.twb) からパッケージド ワークブック形式を選択するシチュエーション
1. Tableau Reader を使用するとき
Tableau Reader はパッケージド ワークブック (.twbx) しか開けません。
2. ファイルを渡された人が元データにアクセスできない場合
ワークブック (.twb) にはデータソース (.tds) の情報はあるものの、データ自体は含まれません。そのため先述の通りファイルを開くとデータにアクセスしようとします。データがデータベース サーバーにあるとか、ネットワーク上の共有フォルダーにあって、ファイルを渡された人がデータにアクセス可能な場合は問題ありません。ところがワークブック作った人の個人 PC のフォルダーの中にある場合などは共有された人はデータにアクセスできません。この場合、データも含めて保存する必要があります。それがパッケージド ワークブック (.twbx) です。

パッケージド ワークブックの思いつく限りの注意点
・データやイメージを含むのでワークブックと比較してサイズが大きくなります。
・データを含むうえ、解凍可能なので元データを抜けます
・データが更新されても、パッケージド ワークブックに含まれるデータが更新されるわけではないので毎度手動更新が必要になる。(接続の編集や名前を付けて保存など)

結構パッケージド ワークブックについては注意点がありますね…

データソース (.tds)

Tableau で厄介なのは Tableau 内で使われている用語と用語が持つ一般的なイメージが違うこと。その代表格がこのデータソースです。ひとことでデータソースといった場合、多くの方はデータそのものを想定していることが多いのですが、Tableau のデータソース (.tds) はデータ自体は持ちません。どこにあるどんなデータにどんな認証で接続し、どのテーブルを結合/ジョインしたとか、データに対して行った変更 (列名の変更/型の変換/別名/既定のプロパティの変更/計算フィールドの作成など) の情報を持つファイルです。ひとつのワークブック内で複数のデータソース (.tds) を持つこともできます。ワークブック内に接続されているデータソース (.tds) の情報はデータ ペインの上部で確認できます。

f:id:zkn360:20190219163424p:plain
サンプル ワークブック「日本分析」に接続されているデータソース (.tds) は 8 個。現在のワークブックで使用されているデータソースには ✔ マークが入っています。

抽出ファイル (.tde もしくは .hyper)

その名の通り、データを抽出した時にできるファイル。Tableau 10.4*3 以前は拡張子が .tde で、Tableau 10.5 以降は拡張子 .hyper になります。 データの一部または全部を抽出 (≒コピー) したもので、Tableau 形式に変換、圧縮して保存されます。

興味があればどうぞ

ぶっちゃけ使う機会があんまりない拡張子たちです。

パッケージド データソース (.tdsx)

先述したデータソース (.tds) にはデータが含まれないのですが、それでは困る場合に備えてデータを含むファイル等を Zip 形式で保存したもの。保存はデータソースの一覧から保存したいデータソースを右クリックして「保存されたデータソースに追加」を選択し、保存画面で拡張子を選択して保存します。
f:id:zkn360:20190219165128p:plain

Tableau Server 使ってればこれ全く必要ないので、普段目にする機会がないのだと思います。

ブックマーク (.tdm)

Tableau 使い始めて 2 年強ですが、(説明目的を除くと) 1 回も使ったことない拡張子。要はワークブック開いたときに特定のシートを指定するためのショートカットみたいなものです。対象はシートのみ。(ダッシュボードはダメ。) というかこの記事書いてて初めて My Tableau Repository フォルダー配下にブックマークというフォルダーあるのに気付きました。。アイコンも見覚えがない笑。保存はウィンドウ メニューからブックマークの作成です。
f:id:zkn360:20190219165956p:plain

拡張子とパブリッシュの関係

ファイルの拡張子を特に気にするのは Tableau Desktop のみを前提としている場合です。ここからは Tableau Server のお話。Tableau Desktop で作成したファイルを Tableau Server にアップロードすることをパブリッシュと言います。*4なんとなくパブリッシュしていると何をパブリッシュしているのかわからなくなることがままあるため、ここではきちんと整理していきたいと思います。

パブリッシュできるファイルは 3 種類

パッケージド ワークブック (.twbx) のパブリッシュ

ハンズオンや各種講習で一番最初に体験するパブリッシュは実はパッケージド ワークブック (.twbx) のパブリッシュです。サーバー メニューから「ワークブックのパブリッシュ」を選択し、特に何も変更せずに右下のパブリッシュ ボタンを押した場合にパブリッシュされるのがパッケージド ワークブックです。
f:id:zkn360:20190221160314p:plain

パッケージド ワークブックをパブリッシュした場合データも一緒にパブリッシュされることになるので、同じデータを使用して別のワークブック (レポート) を作成したい場合は元のワークブックを編集し別名で保存します。これ、実はデメリットが 2 つあります。1 つめは単純にディスクの容量に対する影響です。パッケージド ワークブック自体はワークブック (.twb) より容量が大きいので、たくさん別名のコピーを作れば作るほど全体の容量が増えます。2 つめはデータ変更時の影響です。データ元やテーブルの定義が変更された際に、同じデータを使っているレポートでありながら、ファイルごと別々に分かれているのですべてのファイルに対してダウンロード → データソースの編集 → 再パブリッシュ (同名で上書き) をする必要があり、メンテナンス性が良いとは言えません。

ワークブック (.twb) とデータソース (.tds) を別々にパブリッシュ

パッケージド ワークブックのパブリッシュにデメリットがあるなら、レポート部分 (ワークブック) とデータソース (.tds) を別々にパブリッシュすればいいじゃない、というのが次のお話。実はパブリッシュの画面で下の方をよく見るとデータソースをどう扱うか編集できます。ここで編集ボタンを押してワークブックに接続されているデータソースひとつひとつにたいしてワークブックに埋め込むか、個別にパブリッシュするかを選択できます。ここで個別にパブリッシュを選択するとワークブック (.twb) とデータソース (.tds) を別々にパブリッシュすることができます。*5
f:id:zkn360:20190221163732p:plain

ちなみにワークブック (.twb) とパッケージド ワークブック (.twbx) は Tableau Server 上の UI ではどちらも「ワークブック」として表記されるため見分けが付きません。抽出を含む形でパッケージド ワークブックとしてパブリッシュしたものだけは、メニューに「更新のスケジュール」があるんでかろうじて判別できます。だからこそパブリッシュする時にどんな形式でパブリッシュするかが重要になってくるんですね。
f:id:zkn360:20190221173948p:plain
自分で作ったので私自身は判別できますが、普通は判別できないですよね。

データソース (.tds) のみをパブリッシュ

組織の中ではデータベースを管理する人と分析をする人が分かれているのは良くあることです。データベースを管理している人は分析がメイン業務じゃないし、分析をする人はデータのモデリングはできれば気にしたくない。そんな時に使うのがデータソース (.tds) のみのパブリッシュです。要はデータを誰か準備しておいてくれればそれで良し!という場合、データソースだけを編集、パブリッシュしてあれば充分です。もちろん Tableau はこの願望をかなえるための仕組みを用意しています。データソースのみをパブリッシュしたいときは、データ メニューからパブリッシュしたいデータソース名を選択、「サーバーにパブリッシュ」を選択してパブリッシュするだけです。
f:id:zkn360:20190221165035p:plain

データソース (.tds) を個別にパブリッシュしておくメリットは、ずばりメンテナンス性です。データソースに変更が生じても、データソースを編集すればそのデータソースを利用するワークブックは特に何の編集をしなくてもデータソースの変更を反映します。直す箇所が少なくて済むってことですね!


ということで今回は Tableau の拡張子とパブリッシュについて書いてきました。実はこれ説明頻度がものすごく高い話題です。毎回この文字数の分だけしゃべってるのですが、*6いつでも参照できるように記事にしました。何かの役に立つといいな!

*1:onlinehelp.tableau.com

*2:ワークシート、ダッシュボード、ストーリーのこと。

*3:未だに 32bit マシンの方は使っていると思います。

*4:Tableau Server 上での保存も実はパブリッシュ。

*5:わかりにくいという声をよく聞きます…

*6:とても大変

そのダッシュボードが見られなくなる理由 - 型編

どうしてダッシュボードはダサくなってしまうんだろう、ということを考えていた時に素敵な記事に出会いました。

duelingdata.blogspot.com

この記事ではダッシュボードを 5 つの型に分け、利用目的やシーンを解説しています。今回はこちらの記事で紹介されているダッシュボードをお借りしつつ、利用しやすい、わかりやすいダッシュボードについて考えてみたいと思います。要は目的とダッシュボードの型が合ってないと情報過多になってしまい結果として見られなくなってしまうっていうことです。

ダッシュボードには型がある

ダッシュボードとひとことで言ってみても、実は様々なタイプがあります。まず大雑把に区分するとポスター型とモニター型、アプリ型です。ポスター型は意志、意見、ストーリーを伝えるために作られたもので、大抵の場合企業内で使われるというよりはデータから得られた知見を説明するためのものです。モニター型は言わずと知れた KPI ダッシュボードに代表される、定期的にウォッチする指標をまとめたものです。アプリ型*1は様々な切り口による絞り込みやドリルダウンといった探索を可能とするダッシュボードです。

ポスター型

古い記事ですが、Tableau 界隈ではよく引用される記事を上げておきます。当たり前ですが、Tableau Public にパブリッシュされているものはほぼこのタイプになります。伝えたい内容が明確で、ユーザーにスクロール以上の操作を要求しません。フィルターやドリルダウンを多用すると、ユーザーが勝手な解釈をしてしまう可能性があるのでむしろあまり操作をさせない方がベター。
graphics-info.blogspot.com

モニター型

古くは探索型とか中立型とか言われていたものです。実はこの記事ではこのモニター型を深堀りしたいので、詳細は後述します。

アプリ型

データ探索の自由度が高いダッシュボードをアプリ型ということにします。*2ユーザーがフィルターやドリルダウンを自由に行い、ユーザーが独自のインサイトを得ることを目的としたものです。

モニター型のダッシュボード 4 選

モニター型のダッシュボードの代表的なものは KPI 型、QA 型、トップダウン型、ボトムアップ型の 4 種類です。一見同じもののように見えるのですが、それぞれ得手不得手があります。

KPI 型

KPI ダッシュボード作ってるよ!って方、そのダッシュボードにフィルターはいくつありますか? 3 つを超えていたらちょっと問題です。KPI ダッシュボードは一目で全体が把握でき、アクションを決定するものだからです。あくまでモニタリング (ウォッチ) を目的としており、なぜその事象が起きているかを分析・把握するためのものではありません。また、KPI ダッシュボードは定期的に目にするものです。それにいちいちフィルターかけたりドリルダウンしたりするでしょうか。しないですよね、面倒ですから。*3表示されるデータも一目で見てわかることを重視しますので、詳細なデータではなく集計されたデータを使用します。


QA 型

ビジネス上の質問とその答えを知るためのチャートが複数配置されたダッシュボードです。組織内の質問が同じデータに依るものとも、同じ粒度の質問とも限りません。どちらかというと組織の特定の状況を把握するためのもので、KPI よりは実際のオペレーションと密接な関係にあるチャートが配置されます。最初に紹介したブログ記事では、エグゼクティブまたは中間管理職が定期的にモニターするものとされてます。


トップダウン

特定の課題について、KPI から詳細までひとつのダッシュボードにまとめる形です。指標、時系列、数量比較、(ある程度までの) 詳細行がまとめられたものです。日本の日報のような形を目指しているダッシュボードはこちらのタイプが多いような気がします。トップダウンの名の通り、あくまでリーダーやエグゼクティブといった管理職が見るものなので、ドリルダウンするような動線にはなっていません。


ボトムアップ

組織横断的に詳細を見るためのダッシュボードです。特定の問題について詳細な情報を一覧で確認できる一方、組織内での集計といったハイレベルな指標も同時に確認できます。組織全体の状況を確認しつつ、自分の組織の状況 (良し悪し、時系列の推移パターン、他と比較してどうか) を簡単に確認できるといった特性があります。


アプリ型

これまで紹介してきたダッシュボードはフィルターやドリルダウンを多用しない方が望ましいのに対し、アプリ型はユーザーに自由な探索を可能にするため、むしろ多くのフィルターやパラメーターを配置します。アプリ型の場合は特定の問題を解決するというよりは、分布やクラスターの形状を知りたい場合が多いので、チャートは地図もしくは散布図を使用することが多いようです。


現場で出会うダッシュボードの多くはダッシュボードというより帳票作成ツールなんだと、この記事を作成していて改めて痛感しました。条件指定して、データ抽出して、それらしい帳票を作る。で、その帳票のことを (機能名として) ダッシュボードと呼んでいるだけだなと。ダッシュボードはその名の通り見て判断して次のアクションを起こすためのものであって、報告書のようなものであるべきではないんですね。

*1:今ここで私が命名しました

*2:繰り返しますが、私が命名した勝手な呼称です。

*3:Tableau Server でビュー作ればいいという話は本筋でないので避けておきます。

それでもまだ円グラフを使いますか?

今日のテーマは円グラフ (パイ チャート) です。みんな大好き円グラフ。

レポートや白書、報告書、そういったものには必ず 1 つ以上円グラフが入っています。どこの企業、どの職種であっても可視化と言えばまず円グラフを選んでしまう人もいます。以前から円グラフはわかりやすい/わかりにくいという論争がありますが今回はその論争に終止符を打ちたいと思います。

円グラフはわかりにくい

いきなり結論ですみません。円グラフはわかりにくいです。*1

理由1: 人間の能力

まずひとつ目の理由は、人間の目は角度を測れないから。大きな差がある場合は大きいか小さいかは判別できますが、それがどのくらいの差があるか目で見てわかる方は特殊能力の持ち主と言えます。例えば次の円グラフ、家具家電のどちらが大きいですか? 事務用品は少し小さく見えると思いますが、家具や家電に比べてどれくらい小さいですか?
f:id:zkn360:20190205144920j:plain

理由2: 円グラフは割合 (だけ) 表す

チャートには適切な利用用途があります。*2数の大小を比べるなら棒グラフ、時間の経過を見るなら線グラフ、相関関係を見るなら散布図といった具合です。この辺りの詳細は別の回に譲るとして、円グラフの利用用途について考えてみます。円グラフは言わずもがな、全体に占めるその要素の割合を示します。逆に言うとそれしか表してないんです。それなのに、別の指標も合わせて表現しようとしてしまっている例をよく見かけます。

円グラフの良くある勘違い表現とその代替案

割合を示している (はず)

前述した通り、人間の目は角度を測れません。2 つの項目の大小ならいざ知らず、3 つ以上になると途端に比較が難しくなります。つまり、3 つ以上の項目の割合を示したい場合は別の表現を選択した方がいいということになります。

最もポピュラーな表現は帯グラフでしょうか。棒グラフの長さ全体を 100% として、各要素の割合を示します。
f:id:zkn360:20190205155241j:plain

特に別の項目間で割合を比較したいときに威力を発揮します。
f:id:zkn360:20190205155533j:plain

あまり日本では見かけませんが、ツリーマップという表現も割合を示すのに便利です。特にある程度以上の要素数の割合を示したいときや、カテゴリ→サブカテゴリなど階層関係にある物事の割合を示すときに利用できます。ただし、正確な割合の ”数字” を把握するには割合も表記するなどの工夫が必要になります。
f:id:zkn360:20190205160657j:plain

割合とランキングを示している

要素が多くても、大きい順に並べてるからいいよね!というのがこのパターンです。大きい順に並んでるからと言って、それが本当にそうかは人間では判断できないというのは前述の通りです。
f:id:zkn360:20190205162616j:plain

もし割合とその数字、さらにランキングを示したいなら棒グラフです。もともと棒グラフは数の大小を比べるのに適している上、大きい順または小さい順であることが一目瞭然です。画像ではあえてランキングの数字を入れていますが、これはあってもなくても問題ないでしょう。
f:id:zkn360:20190205162849j:plain
ちなみにこういうグラフでランキングごとに色分けしたりする方いますが、色に意味がなく混乱するだけなのでお勧めしません。*3

割合と絶対量を示している

これは単一の円グラフだと絶対に表現できないものなのですが、ランキングと同じく一緒くたにされているケースがあります。絶対量のラベル表示を付けているからわかりやすいはずだ!とか反論はありそうですが、数字を読ませている時点で可視化としてはイケてるとは言えません。

そんなときのひとつのアイデアが、ツリーマップと棒グラフの組み合わせ。本来ツリーマップは全体の中の割合を把握するためのものですが、棒グラフの長さを 100% に統一するのではなく、実数とすることで、全体の割合と絶対量を一度に表現できるようになります。ただし、ツリーマップの読み方に慣れていなかったり*4、情報量が多いので理解に慣れが必要です。
f:id:zkn360:20190205164415j:plain

素数が少なく、かつ絶対量の比較ではなく雰囲気で量の多寡を見たいという場合には円グラフのサイズを量の多寡で表現したようなグラフもアリといえばアリです。ただし、繰り返しにもなりますが、円の大きさも人間の目では比較できないもののひとつなので、絶対的な量を比較したいという場合には向きません。
f:id:zkn360:20190205164923j:plain

ドリルダウンするためのボタンとしての円グラフ

Excel ではあまり見かけない利用パターンなのですが、こと BI ツールになると良くあるのがこれ。円グラフの要素 (パイ) を選択すると、詳細に跳ぶみたいな作りです。これもやはり要素が少ないときは円グラフでもいいのかもしれませんが、要素が多くなって、なおかつ割合が小さい時などはとてもじゃないけど選択/クリック出来ません。こういう用途の時はもはや正確な量 (割合) の多寡は求められていないので、選択しやすいツリーマップ、棒グラフ、バブルチャート、ヒートマップ等を利用しましょう。

円グラフが有効な時

散々円グラフのダメ出し的なことを書きましたが、円グラフが有効な時もあります。既にチラッと書きましたが、要素が 2 つの時でその割合が拮抗しているときです。例えば (特にアメリカ大統領選などの) 選挙や男女比といったものです。これは帯グラフやツリーマップよりもどちらが大きいかを視覚的に示すことができます。
f:id:zkn360:20190205170951j:plain

ちなみに、円グラフもドーナツグラフも本質的には同じものです。ドーナツグラフは中心の円に文字やその他情報を併記できるので、少し親切な印象を持たせることができます。お好みでどうぞ。

*1:3D の円グラフは言語道断

*2:適切なチャートって何?ってかたはこちらをご参考ください。日本語で網羅性も高い資料です。 github.com

*3:目標値以上だったら色分けするとかはアリ

*4:結構よく見方を聞かれる