3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ggplot2で散布図を書いて各点の頻度で色を変える

Last updated at Posted at 2014-07-18

散布図で各点の頻度を色で示す

基本的な書き方

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))

出来上がりサンプル

中央色を中央値として使用した散布図
iris_width_length1.png

中央色の値を1に設定した散布図
iris_width_length2.png

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?