1. 良いグラフはフラットデザインである
ペンタッチの強弱はいらない
良い例
良い例の方は、x=-1 or 1 のところでちょっとカクカクしています。悪い例の方は、ペンタッチの強弱でなめらかにみせています。
なめらかさ*1というのは大事な性質なので、それをごまかさないで欲しいのです。
グラデーションはいらない
グラデーションがあると、大小関係がごまかせます。
ごまかさないで欲しいのです。
悪い例
良い例
2. 良いグラフはものさしで測れる
尺度が線形である、ということです。
例えば、アイコンが3つ並んでいるのを見て、「ふむ、アイコン2つより1つ多いな」と考えることに意味があるなら、それは意味のある可視化だと思います。
2次元のグラフであれば、縦軸と横軸に目盛りがあるのが基本です。
人間の目は、位置や長さを比べるのは得意ですが、相対的な角度や面積を比べるのは苦手なのです。
参考:
万能棒グラフ
不思議な円グラフを描くウェブサービス作ったよ - aikeの日記
ああああ: 円グラフやめろ ←ぼくの昔のブログ
> 3. display x axis in both sides, and each of them has individual scales?
ggplot2 will never support this because I think it's a really really bad idea.
R help - How to change the default location of x-axis in ggplot2?
3. 良いグラフは色に頼りすぎない
カラーユニバーサルデザインであるほうが、多くの人に伝わります。
参考:
統計グラフの色
色分けし過ぎると凡例と見比べるのが大変になります。
悪い例
色に頼り過ぎると、プリンターやプロジェクターの性能によっては再現できなくなります。
白黒コピーしても伝わるようなグラフが理想ですね。
追記(2013年3月1日)
学校では習わない愛の方程式。素敵だ。pic.twitter.com/19kjpDuZES
— MASAKI (@masaki_558) 2014, 2月 23
↑このハートのグラフ*2ですが、より良い例がありました。
出典:
Shoot The Heart With Monte Carlo | (R news & tutorials)
R のコード:
library("ggplot2") heart.up <-function(x){sqrt(1-(abs(x)-1)^2)}#Upper part of the heart heart.dw <-function(x){acos(1-abs(x))-pi}#Lower part of the heart#Plot of the heart ggplot(data.frame(x=c(-2,2)), aes(x))+ stat_function(fun=heart.up, geom="line", aes(colour="heart.up"))+ stat_function(fun=heart.dw, geom="line", aes(colour="heart.dw"))+ scale_colour_manual("Function", values=c("blue","red"), breaks=c("heart.up","heart.dw"))+ labs(x ="", y ="")+ theme(legend.position = c(.85,.15))
ggplot2 はグラフポリシーに則った作図がきれいにできるし、ggplot() の出力をオブジェクトとして持って、合成関数みたいにレイヤーを足し算していく感じで、コンセプトも合理的だと思うので、積極的に使っていきたいです。
参考:
Rのグラフィック作成パッケージ“ggplot2”について|Colorless Green Ideas
あと最近チャートジャンクという言葉を覚えました。