散布図で各点の頻度を色で示す
基本的な書き方
g <- ggplot(iris, aes(x=Sepal.Length, y=Sepal.Width))
g <- g + stat_bin2d(bins=75)
g <- g + scale_fill_gradientn(colours=c("green","black","magenta"),limits=c(0,5))
プロットの頻度を色で示すにはstat_bin2d
を使う。もしくはstat_binhex()
を使って六角形のプロットにすることもできる。stat_bin2d
の引数bins
で大きさを調整できる。
scale_fill_gradientn
で色合いなどを決められる。右から最小、真ん中、最大をcolors
で設定。最大値と最小値をlimits
で設定する。
任意に中央値を決める
中央に指定した色を中央値からずらして任意の値にしたいときはvalues
とscalesパッケージのrescale
を使ってscale_fill_gradientn
のオプションに以下のように追加する。
library("scales")
g <- ggplot(iris, aes(x=Sepal.Length, y=Sepal.Width))
g <- g + stat_bin2d(bins=75)
g <- g + scale_fill_gradientn(colours=c("green","black","magenta"),limits=c(0,5),values=rescale(c(0,1,5))
フォントとか設定する(Theme)
あとは目盛のフォントサイズなどを整えて出来上がり。
g <- ggplot(iris, aes(x=Sepal.Length, y=Sepal.Width))
g <- g + stat_bin2d(bins=75)
g <- g + g <- g + scale_fill_gradientn(colours=c("green","black","magenta"),limits=c(0,5),values=rescale(c(0,1,5))
g <- g + xlab("Sepal length") + ylab("Sepal width")
g <- g + theme(axis.title.x = element_text(size=16), axis.title.y = element_text(size=16), axis.text.x = element_text(size=14),axis.text.y = element_text(size=14),legend.title=element_text(size=14),legend.text=element_text(size=14))