R繪圖(4): 散點(diǎn)圖添加相關(guān)系數(shù)/回歸方程

屬于比較常用的技巧。下面我用ggplot2內(nèi)置數(shù)據(jù)集進(jìn)行演示:

先來看一下,僅有散點(diǎn)和擬合線的圖

df=diamonds[sample(1:dim(diamonds)[1],40),]
df$price=df$price / 10000
p=df%>%ggplot(aes(carat,price))+
  geom_point(size=4,alpha=0.3,color="#6baed6")+
  geom_smooth(method = "lm", formula = y~x, color = "#756bb1", fill = "#cbc9e2")+ #顏色選自https://colorbrewer2.org/
  theme_bw()+
  theme(
    panel.grid.major = element_blank(),panel.grid.minor = element_blank()
  )
p
ggsave("tmp1.pdf",width = 8,height = 8,units = "cm")

如果想添加擬合的方程,可以使用ggpmisc包的stat_poly_eq()函數(shù),該函數(shù)可以擬合多項(xiàng)式方程并生成多種標(biāo)簽,比如p值、決定系數(shù)R方,這些由函數(shù)計(jì)算出來的量通常名稱前后有兩個(gè)點(diǎn)

..eq.label..
..adj.rr.label..
..p.value.label..

對(duì)應(yīng)的代碼只有一行,其余代碼和上面一樣:

library(ggpmisc)
p+stat_poly_eq(aes(label=paste(..eq.label..,..adj.rr.label..,..p.value.label..,sep = "~~~~")),formula = y~x,parse=T,size=2.5)
#這一行paste()中的內(nèi)容是一個(gè)類似Latex的表達(dá),“~”表示空格,parse=T表示將這個(gè)語句翻譯成可讀形式;size=2.5表示字體大小
ggsave("tmp2.pdf",width = 8,height = 8,units = "cm")

如果需要添加相關(guān)系數(shù),可以按照相同的思路,先求出對(duì)應(yīng)的值,再加到stat_poly_eq()的label參數(shù)里

cor=round(cor(df$carat,df$price),2)
p+stat_poly_eq(aes(label=paste("italic(r)~`=`~",cor,sep = "")),formula = y~x,parse=T,size=4)
ggsave("tmp3.pdf",width = 8,height = 8,units = "cm")

另外也可以使用ggpubr包的stat_cor()函數(shù),添加相關(guān)系數(shù)以及p值

library(ggpubr)
p+stat_cor()
ggsave("tmp4.pdf",width = 8,height = 8,units = "cm")

將stat_poly_eq()和stat_cor()結(jié)合起來也是可以的,當(dāng)然兩個(gè)文本的位置需要調(diào)整一下

p+stat_poly_eq(aes(label=..eq.label..),formula = y~x,parse=T,size=4)+
  stat_cor(label.y=0.9,size=4)

因水平有限,有錯(cuò)誤的地方,歡迎批評(píng)指正!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容