読者です 読者をやめる 読者になる 読者になる

ルビスコくん空を飛ぶ

博士学生(D1)の日記です.日記に加えてプログラミング(R)のメモ書きもします.

回帰直線を引いて同時に回帰式も図に表示させる

わかりやすくするために図の中に式を埋め込みたいけど,式をRで調べていちいちパワポイラストレータなどで文字を打ち込むのは時間の無駄なのでRで(ggplotで)やってしまいましょう.今回もデータセットはairqualityを使います.

f:id:pam715:20161011163649p:plain

この中のOzoneとTempの回帰式の傾き,切片,r2値を調べる.

res <- summary(lm(airquality$Ozone ~ airquality$Temp))
slope <- round(res$coef[2], digits = 3)
intc <- round(res$coef[1], digits = 3)
rsq <- round(res$r.squared, digits = 3)

傾きはslope,y切片はintc,r2値はrsqに格納できた.後で図中に落として見にくくならないようにround()で有効数字を決めておく.

次にggplot2で散布図を描いてannotateで式を書く.

ggp <- ggplot(airquality, aes(x = Temp, y = Ozone))
gm <- geom_point()

lyr <- ggp + gm + geom_smooth(method = "lm", se=F) + theme_bw() +
annotate("text", label = paste0("y==", slope, "*x + ", intc), x = 70, y = 150, parse = TRUE, size = 10) +
annotate("text", label = paste0("r2==", rsq), x = 70, y = 130, parse = TRUE, size = 10)

 annotate()では,"x ="と"y ="で文字の位置を決める.

f:id:pam715:20161011165516p:plain

y切片の表示が"+-"になっているし"r2"が上付け文字になっていないが…