About connecting the dots.

data science related trivial things

ggplot2でExcelライクなヒートマップを作る

Excelでぱぱっとデータを可視化するときに,よくヒートマップ使うんですけれども,これと同じことをggplot2でやってみましたというお話.Excelのヒートマップは,リボンUIで[ホーム]→[スタイル]→[条件付き書式]で設定できて,下のように赤-黄-緑とグラデーションがついて見やすいわけです.

f:id:SAM:20140921191833p:plain 

ggplot2でも同じようにしようと思ったら,scale_color_gradient()でもscale_color_gradient2()でもうまくいかず.色指定にrainbow()でも使えばいけるかと思ったら,これもダメ.で,結局scale_color_gradientn()を使って以下のように指定してあげればOK.

p = p + scale_color_gradientn(colours=c('springgreen4', 'yellow', 'red'))

実際にdiamondsデータを使って,軽くプロットしてみたのがこちら.[high]赤-黄-緑[low]とちゃんとグラデーションがついています.これでggplot2でも見やすいカラーグラデーションを使った可視化ができて幸せですね.

f:id:SAM:20140921193301j:plain

p = ggplot(diamonds)
p = p + geom_point(aes(x=log(x, 10), y=log(z, 10), colour=price))
p = p + scale_color_gradientn(colours=c('springgreen4', 'yellow', 'red'))
plot(p)