データの可視化 Data-ink Ratioとは?簡潔で分かりやすいグラフを描くためのコツ

データの可視化 Data-ink Ratioとは?簡潔で分かりやすいグラフを描くためのコツ

Pocket

グラフを分かりやすくするための大原則としてよく、”余分な要素をできるだけ排除して、シンプルにせよ”といったことが言われます。
しかし、”頭では分かっているが、具体的にどうすればよいか分からない”という方や、”普段なんとなくシンプルになるようにしている”という方も多いのではないでしょうか。

そんな方のために、以下の記事をご紹介します。
Data looks better naked
http://www.darkhorseanalytics.com/blog/data-looks-better-naked
見難いグラフを改善していく過程が、GIFアニメ(スライド版もあり)にまとめられているため、数十秒でポイントを押さえられます。
説明文を飛ばして、アニメーションのところだけご覧いただいても十分理解できますので、英語が苦手な方もぜひ見てみてください。


いかがでしたか。
ページの下部には、Speaker Deckのスライドも埋め込まれています。スライドの中央より右側をクリックするとページをめくれます。

棒グラフ編の他にテーブル編円グラフ編地図編がありますが、いずれも非常に分かりやすい内容でオススメです。

では、ここからはこのページの内容を、わたしなりに解説していきます。
まず、ページ上部の英語の解説を見てみると、”Edward Tufte”、”Data-ink”といった単語が出てきます。
まずは、これらの単語の意味から説明していきます。

Data-ink Ratioとは

Data-ink Ratio(データインク レシオ=データインク比)は、可視化の権威と言われるEdward Tufte(エドワード・タフテ)氏が提唱した用語で、その意図は”よいグラフを描くには、余分なものをすべて削除すべき”という点にあります。

“比”とあるように、ある値とある値の割り算でもとめられる比率なのですが、具体的な計算式は以下のようになります。
データそのものをあらわすために使われたインクの量 / グラフ全体で使われたインクの量

この比率が高いほどよいグラフということになります。つまり、絶対に削除できないデータそのものを残して、あとはできるだけ削除した方がよいということになります。
たとえば、棒グラフの棒自体はデータインク、影の効果などはノン・データインクであり、ノン・データインクは少なければ少ないほどよいということです。

まとめてしまうと簡単なのですが、あえて”インクの量”という言葉を選んだところに着目してみると、たとえば以下のようなことが言えます。
・背景は白にする。(背景を塗りつぶすようなことはしない。)
・目立たなくてよい罫線は、細い線や薄い色にするか、または削除する。
・文字も同様で、ラベルやタイトルなどのデータと直接関係ないものは、なるべく薄い色にするか削除する。

Data-ink Ratioの説明は以上です。
それでは、ここからはあらためて棒グラフ編、テーブル編、円グラフ編、地図編について解説していきます。
基本的な考え方は共通しているため、棒グラフ編を重点的に解説していきます。


棒グラフ編

Data looks better naked
http://www.darkhorseanalytics.com/blog/data-looks-better-naked

Qlik Sense版の良い例、悪い例を作成してみましたので、見てみてください。
data-ink-ratio-101
Qlik Senseでは、背景画像や影の効果などの装飾はもとから設定できないため、悪い例の方も見やすい方ではありますが、それでも良い例の方が簡潔だと思います。

Qlik Senseのアプリ(qvfファイル)も公開いたしますので、ぜひQlik Senseで開いて見てみてください。
data-ink-ratio.zip
Zip形式ですので、ダウンロード後解凍してください。

棒グラフ編の内容を、チェックリスト形式でまとめると以下のようになります。
  1. 背景は削除する。(Remove backgrounds)
    背景色や背景画像などは削除し、背景は白にする。
  2. 余分なラベルは削除する。(Remove redundant labels)
    グラフタイトル、X軸とY軸のタイトル、凡例などの中で余分なものは削除する。また、長いタイトルはなるべく短くする。
  3. 枠線(グラフを囲む線)は削除する。(Remove borders)
  4. 使用する色の数を減らす。(Reduce colors)
    棒グラフでは棒の色分けはしない。ただし最大値を赤色にするなどのハイライト表示はOK。
  5. 影や3Dなどの特殊効果は削除する。(Remove special effects)
  6. 文字の太字は使わない。(Remove bolding)
  7. ラベルは薄い色にする。(Lighten labels)
    たとえばX軸のラベルは普通の文字、それ以外のラベルは薄い色(灰色など)にする。
  8. 罫線は薄い色(灰色など)にするか、または削除する。(Lighten lines Or Remove lines)
  9. グラフ上に直接値を表示する。(Direct label)
    Y軸の数値は削除して、棒グラフ上に直接値を表示する。
このうち「2.余分なラベルは削除する」と「4.使用する色の数を減らす」については、すこし説明を追加させてください。

2.余分なラベルは削除する。
先ほどの悪い例に、コメントを入れてみましたのでご覧ください。
data-ink-ratio-102
X軸タイトルに地区名とありますが、「関東」や「近畿」が地区だということは明らかです。このように何の値か明らかな場合は、タイトルは削除できます。
逆に何の値か分かりにくい場合は、タイトルを残した方がいいでしょう。たとえば、散布図ではX軸、Y軸タイトルを付けた方がいいでしょうし、棒グラフでも度数分布などの場合はX軸タイトルを付けた方がいいでしょう。

Qlik Sense特有の注意事項
Qlik Senseのスマートサーチ機能では、グラフタイトルも検索対象となります。
そのため、説明的なグラフタイトルが必ずしも無駄になる訳ではありません。
data-ink-ratio-103
4.使用する色の数を減らす。
棒グラフの意味のない色分けはなくし、一色にします。

Qlik SenseとQlikView特有の注意事項
Qlik SenseやQlikViewでは、あえて棒グラフを色分けする場合があります。
固定色の機能を使用すると、複数のグラフでおなじ値にはおなじ色を割り当てられます。
たとえば、下図のように棒グラフと折れ線グラフで、地区の色を揃えたい場合にあえて、棒グラフの方も色分けする場合があります。
data-ink-ratio-104
この例では、数値の大きい順に並べ替え、グラフタイトルも統合することで、さらに簡潔にできます。
色を揃えることで、折れ線グラフの凡例も削除できるため(棒グラフが凡例の役割を果たしています)、非常にすっきりします。
data-ink-ratio-105

固定色は、以下の場所から設定できます。
Qlik Sense
画面右側のプロパティパネル[スタイル]→[色と凡例]→[固定色]
data-ink-ratio-106
QlikView
チャートプロパティウィンドウ[色]タブ→[固定色]
data-ink-ratio-107

棒グラフ編の説明は以上です。
ちなみに、棒グラフ編のページ最後で紹介されているのは、サン・テグジュペリ氏の名言です。可視化のことを語る際に、よく引き合いに出される言葉ですね。


テーブル編

Clear Off The Table
http://www.darkhorseanalytics.com/blog/clear-off-the-table

棒グラフ編と重複する部分も多いため、テーブル編特有の内容のみまとめます。
  1. 左揃え右揃えを設定する。(Left Align Text、Right Align Numbers、Align Titles with Data)
    文字は左揃え、数値や日付は右揃えにする。タイトルもデータとおなじように整列する。
  2. 数値の桁をあわせる。(Use Consistent Precision)
    たとえば、1.2、10、1.23といった表記が一つの列で混在しないように、小数の桁を揃えます。
  3. 数値の桁数を減らす。(Round the Numbers、Round the Numbers More)
    Moreとあるように、数値の桁数はなるべく少なくすることを推奨しているようです。
    この例では数値を千単位で表示して、整数部分が3桁以内におさまるようにしています。
  4. 行間を空け、値の重複を省く(Put Whitespace to Work、Remove Repetition)
    罫線ではなく、行間と値の重複を省くことでグループをあらわしています。
途中で出てくる「No More Calibri」のCalibriはWindowsに同梱されるフォントのことです。作者の方はこのフォントがあまり好きでないようです。

Qlik Senseと、QlikViewのサンプルを作成しましたので見てみてください。
Qlik SenseやQlikViewのテーブルは、初期設定でもおおむね上記の注意事項に沿ったものになります。

Qlik Senseのテーブル
data-ink-ratio-108
QlikViewのストレートテーブル
data-ink-ratio-109

最後の「値の重複を省く」について補足いたします。
テーブル編では、Qlik Senseで言う軸項目について、おなじ値がつづく場合は重複を省いて最初の一件のみ表示しています。
たしかに、報告書などで使う静的なテーブルでは、値の重複を省いた方が見やすいと思います。

しかし、Qlik SenseやQlikViewなどのBIツールでは、テーブルはただ見るだけでなく、Excel形式で出力したり、値をクリックしてその値に絞り込んだりします。
そのため、あえて重複を省かずにそのまま表示することが多いように思います。
※そもそもQlik SenseやQlikViewには、値の重複を省く機能はありません。

特にExcel形式で出力して二次加工するような使い方を想定している場合は、値の重複は省かずにそのままの明細表を、利用者に提供した方がよいでしょう。


円グラフ編

Salvaging the Pie
http://www.darkhorseanalytics.com/blog/salvaging-the-pie
個人的には一番のオススメです。
また、これが気に入った方は、当ブログ内のこちらの記事も気に入ると思いますのでぜひご覧ください。


地図編

Data Looks Better Naked: Maps Edition
http://www.darkhorseanalytics.com/blog/data-looks-better-naked-maps-edition
地図編です。考え方は棒グラフ編やテーブル編とほぼおなじです。
地図特有のものとしては、グラデーションをうまく使うという点と、グラデーションを使う際は無段階のグラデーションではなく、数段階のグラデーションにする(この例では6段階)という点が挙げられます。


最後に…

いかがだったでしょうか。
今回の記事では、Data-ink Ratioの考え方と実践的なサンプルをご覧いただきました。
データの可視化は、頭では分かっていても実践しにくいものですので、こういった分かりやすいサンプルを目で見て学べるのは非常に助かります。
またなにかよい記事を見つけましたら、このブログで紹介したいと思います。

お疲れ様でした。


作者の方の、Speaker Deckのページです。上記4つのスライドをまとめて見たいときはこちらが便利です。
Presentations by Joey Cherdarchuk // Speaker Deck
https://speakerdeck.com/cherdarchuk

Data-ink Ratioの説明をまとめる上で参考にしたページの中から、おもなものを掲載します。