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

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

Google のデータ ビジュアライゼーションに関するマテリアルデザインの記事を Tableau 視点で読む

先日話題になった、Google のデータ ビジュアライゼーションの記事が気になったので読んでみました。

material.io

この記事はデータを可視化する際の基本的なセオリーから、個々のケースでの DO と DON'T が紹介しています。非常にまとまっている反面、英語であること、それなりの前提知識を必要とするなと感じたので*1 Tableau 的な視点から読んでみた感想をまとめていきます。

なお Tableau 視点ですので、Tableau にない思想やない機能については言及しません。訳してるように見える箇所も意訳ですので、正確性を求める方は元記事を読んでください。

Principle

データ可視化の目的。データ可視化は意思決定のために必要なコミュニケーション手段であり、可視化されたデータは比較が容易になったり、ストーリーを伝えるために使われる。

重要なポイントは 3 点

  • 正確性

データの可視化ではデータの正確性、明確さ、完全性を優先する。データを歪めない。

  • 使いやすさ

文脈や目印を使ってデータ探索や比較を容易にする。

  • 拡張性

ユーザーのニーズに合わせて、画面を構成できること

Type

いわゆるどんなチャートを選ぶべきかという話。Tableau ではおなじみの 「表示形式」の話なので割愛。日本語で詳細を見たい方は Visual Vocabulary がお勧め。

github.com

Selecting Charts

例えば同じ「比較」にしても何種類もチャートが選択肢としてある中、どれを最終的に選ぶべきかという話。本来は Visual Vocabulary 見れば済むのですが、シンプルにまとまっています。

時系列変化を示す場合

チャートの種類 利用目的 ベースラインの値 系列の数 データ型
線グラフ データのわずかな変化を示す 任意の値 任意 (8 以上の時に有効) 連続
棒グラフ データの大きな変化を示す。個々のデータが全体に影響しているのか、比較やランキングなど ゼロ 4 以下 不連続またはカテゴリー
エリア グラフ データセット間の関係を簡潔に示す。個々のデータが全体に影響しているか示す。 ゼロ (1 系列以上の場合) 8 以下 連続

棒グラフと円グラフ

棒グラフも円グラフも全体における個々のデータの割合を占める場合に使うと解説されてます。円グラフは使うな、と言いたいところですがここでは元記事に従います。

棒グラフは異なるカテゴリーの時間による変化を示すのに使う

f:id:zkn360:20190708160723p:plain

ちなみに「Google 流資料作成術」によると、カテゴリーとカテゴリー間はすき間をあけることでそれぞれをグループ化して見やすくしようとあるのですが、Tableau ではそれはできないので、線を入れることで表現します。*2
f:id:zkn360:20190708160944p:plain

円グラフは時系列変化に使わない

そもそも角度を並べて比べるのは不可能。
f:id:zkn360:20190708161424p:plain

せめて帯グラフ使うとか工夫しましょう。
f:id:zkn360:20190708162055p:plain

エリア チャート

エリア チャートは積み重ねたタイプとオーバーレイ (レイヤーを重ねた) タイプの 2 種類。

積み重ねたタイプのエリア チャートは系列が増えても見やすい

f:id:zkn360:20190708163230p:plain

オーバーレイ タイプのエリア チャートは読みにくい上にデータをあいまいにする

Tableau だと、[分析] メニューの [スタック マーク] を [オフ] にするってことですね。系列が 2 つまでならアリなんですけど、3 つ以上だと…そもそも凡例と合ってるかさえわからない状態に。
f:id:zkn360:20190708163715p:plain

Style

形や色、テキストを上手に使うとユーザーへの認知的負荷を下げることができるため、いわゆる「ぱっと見てわかる」につながる。

Styling different types of data

データをどのような見た目にするか決めていくにあたりどのような視覚属性があるかというと下記の通り。

  • 形状
  • サイズ
  • エリア
  • 大きさ
  • 長さ
  • 角度
  • 位置
  • 方向
  • 密度

複数の属性を使用する場合もある。
f:id:zkn360:20190708165208p:plain
ちなみに Tableau だと色と形の両方を一度に表現する凡例は作れないので、凡例用のシートを別に作成します。

形状

いろんな形状でチャートは表現できるし、どれを選ぶかは迷いどころ。

Level of shape detail

一瞬新手の LOD かと思いました。見る人にとってわかりやすい、操作しやすい形状を選択し、あまり詳細にする (細かすぎる) のは避けるべき。

f:id:zkn360:20190709165857p:plain
棒グラフは本来棒の先端の位置 (長さ) で数値の大小を比較するものだが(左)、無意味に先端を丸くした棒グラフは数値が読み取りにくい。(右)

色の利用方法について。Tabloid*3 であればそんなに違和感ないと思われる箇所です。

  • カテゴリーを区別する
  • 量の多寡を示す
  • 特定のデータをハイライトする
  • 意味を伝える

色の使用例:
f:id:zkn360:20190710100817p:plain

Area of Focus

色の使いすぎは良くないよ、という話。色はデータを注目するのにも使える一方、色の使いすぎはデータのどこに注目すればいいのかわからなくなる。
f:id:zkn360:20190710101736p:plain
Tableau のイベント等でよく出る例ですね。

その色がどういう意味か示そう

色には付随するイメージがあります。警告安全や、熱い冷たい等がわかりやすい例だと思います。ただ、このイメージも文化が違えば意味が違うため、色がどういう意味かを示しておく必要があります。

Accrssibility

有名なのは赤緑色盲ですが、人によっては異なる色の組み合わせでも見えづらいということがあります。そういう状況も考慮しましょう。詳細な説明とどういう色に注意すべきかはこのサイトがわかりやすいです。

tsutawarudesign.com

線グラフとして使うだけではなく、様々な使い方ができる。

  • 注釈
  • 予測要素
  • 比較材料
  • 信頼区間
  • 異常
線のテクスチャーを工夫してわかりやすいチャートに

Tableau では元記事のように点線でグラフを作成することができないので、色にカテゴライズされる話でもあるのですが、要は色や形の種類数も人間が画面を見て理解するまでの時間を遅くする要素になるのでなるべく減らしましょうということです。

f:id:zkn360:20190710104222p:plain
左は最新の年を濃色、その前の年を薄色で示し、なおかつカテゴリーごとに色を付けた例で、右は年とカテゴリーの組み合わせ一つ一つに違う色を付けた例。

Typography

どうもタイポって言うとキーボードの打ち間違いと思ってしまうのですが、このセクションは文字の体裁の話です。対象となる部分はタイトル、データラベル、軸ラベル、凡例です。ざっくりまとめると読みやすいフォントとそこそこ大きい pt サイズ使いましょうということ。日本語だと私はメイリオか Meiryo UI 使うことが多いです。あと何でもかんでもボールドにすると読みにくいので注意しましょう。

Iconography

ここら辺りから Web UI 的な要素が強くなってきます。*4ユニバーサルな意味合いのアイコンを使うというのが最も注意すべき点といったところです。アイコンの使用用途は下記が代表的なものだそう。*5

  • カテゴリーのデータで、他のグループやほかのカテゴリーと違うことを示す
  • フィルターやズーム、保存やダウンロードといった UI コントロールとアクションを提示する
  • エラーやデータの欠損、完了、危険といったような状態を示す

アイコンを凡例として使うというのも一手ですね。

軸ラベル

まさに「Google流資料作成術」でも触れられている点になります。軸ラベルを付ける場合にはほどほどの目盛り幅にするというのも気を付ける点。
f:id:zkn360:20190712101420p:plain

軸はゼロから始めるべき

たまにグラフの開始位置がゼロから始まっていないものを見かけますが、誤解を与えるのでやめましょう。研究成果を良く見せたいとか世論の印象を操作したい目的でゼロから始まっていないグラフを見かけますね。詐欺チャートとかとも言われます。
f:id:zkn360:20190712101721p:plain

目盛りの幅も気を付けよう

f:id:zkn360:20190712102607p:plain

グラフの縦横はラベルの読みやすさで決めてもいい

商品名など軸ラベルが長くて読みづらいときなどはグラフの縦横変えてもいい。ちなみに Tableau には文字を斜めに表示する機能はないので、名前が長い時は横向き一択です。
f:id:zkn360:20190712103331p:plain

凡例と注釈

チャートに必要な情報を付加するのが凡例と注釈。注釈は特定のデータをハイライトする目的で使う。

凡例とチャートを分けると理解しにくくなるので、チャートに直接ラベルとして凡例を表示してもいい。
f:id:zkn360:20190712103825p:plain

Small Display

小さなディスプレイ (アプリとかなんとかウォッチとか) にデータを表示するときの注意事項。Tableau をそこまで小さいディスプレイに表示することはないので割愛。

動作

ユーザーが操作するためのコントロールをイチから作成する場合はどうしましょうかというセクション。Tableau にはもともと複数の種類の動作が用意されており、結果どういったアクションが発生するのか作成者が制御できるので、ここでは割愛。

ダッシュボード

特定の目的に沿ったチャートの集まりをダッシュボードと言います。*6

ダッシュボード デザイン

ダッシュボードのデザインは目的に応じて変わります。…ってこのセクション、以前私が会社のイベントで講演した内容でして、良ければそちらの資料をご覧ください。*7講演内容のダッシュボードの型のセクションが一番近いです。

https://www.tableau.com/sites/default/files/ddo_tokyo_2019_techsession_e7.pdf

元記事では目的別のセクションの前にある、デザインガイドがわかりやすいです。
上から情報をどのように並べるべきか、どの程度の情報を並べるかというのが完結に説明されています。

  1. 最も注意すべき問題は何か (ダッシュボードのタイトル)
  2. その問題が発生したタイミング
  3. 問題が発生した箇所
  4. その問題で影響を受けるほかの問題など
ダッシュボードのタイプは 3 種類
  • Analytical
  • Operational
  • Presentation

これも講演内容に(以下略


さて、長い記事にお付き合いいただきありがとうございました。データの可視化には一定のセオリーがあるということがわかりやすくまとまってましたね。ツールによってできる/できないはありますが、共通のセオリーは覚えておいて損はありません。

*1:この記事を理解する前提知識としては間違いなく「Google 流資料作成術」の書籍です。お時間の許す方は先にそちらを一読されることをお勧めします。

*2:そもそも Viz の線を全部消す方がよっぽどしんどい

*3:Tableau 使う人のこと

*4:したがって、端折る度合いが大きくなってきます

*5:アイコンの使い方なんで改めて考えたことなかった。

*6:知ってた

*7:いつまでリンクが生きているかは不明です。悪しからず