ggplot作圖之散點(diǎn)圖(擬合曲線,公式)

前段時(shí)間在著手性狀測(cè)試設(shè)備的驗(yàn)收工作,需要對(duì)機(jī)器測(cè)量數(shù)據(jù)和人工測(cè)量數(shù)據(jù)進(jìn)行相關(guān)性分析,散點(diǎn)圖加擬合曲線是一個(gè)好的呈現(xiàn)方式,現(xiàn)在將這個(gè)方法的R代碼記錄下來(lái),一是對(duì)剛學(xué)知識(shí)的梳理,二是以后方便查看和分享給更多的志同道合的小白。 作者:劉峻宇
1、讀取、整理數(shù)據(jù):

##共測(cè)試了50尾大蝦和50尾小蝦,現(xiàn)將數(shù)據(jù)合并,并繪制BL(body length)的機(jī)器和人工測(cè)量數(shù)據(jù)的相關(guān)性
require(data.table)
require(ggplot2)
big <- fread(input= "shrimp_big.csv",sep = ",",header = TRUE) 
little <- fread(input= "shrimp_little.csv",sep = ",",header = TRUE)
colnames(little) <- c("ID","AL1","BL1","CL1","CW1","CH1","AL2","BL2", "CL2" ,"CW2", "CH2")
shrimp <- rbind(big,little) 
data <- as.data.frame(cbind(shrimp$ BL1,shrimp$BL2))
colnames(data) <- c("x","y")  #y和x代表BL2和BL1
head(shrimp) 

查看數(shù)據(jù)集結(jié)構(gòu),左邊機(jī)器測(cè)量,右邊人工測(cè)量

Call:
ID AL1 BL1 CL1 CW1 CH1 AL2 BL2 CL2 CW2 CH2
1 50.7 100.6 30.2 16.1 19.6 6.4 10.1 2.7 1.1 1.7
2 57.2 112.5 34.4 17.6 21.4 6.6 11.9 3.1 1.5 2.0
3 56.8 102.3 30.5 16.0 19.5 6.4 11.2 3.1 1.5 1.8
4 62.6 116.1 36.0 17.9 21.7 6.7 11.4 3.2 1.7 1.9
5 53.8 106.2 32.2 16.8 20.4 6.3 10.6 3.2 1.7 1.7
6 55.3 114.3 35.6 17.1 20.8 6.5 11.5 3.1 1.5 1.8

2、查看兩數(shù)據(jù)間的線性關(guān)系

lm <- lm(y~x + I(x^2),data = shrimp) 
summary(lm)

Call:
lm(formula = y ~ x + I(x^2), data = data)
Residuals:
Min 1Q Median 3Q Max
-2.04722 -0.30843 -0.00514 0.29011 1.03779
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -3.6014832 0.9583339 -3.758 0.000294 ***
x 0.1855287 0.0227781 8.145 1.4e-12 ***
I(x^2) -0.0004773 0.0001266 -3.771 0.000281 ***
Signif. codes: 0 ‘’ 0.001 ‘’ 0.01 ‘’ 0.05 ‘.’ 0.1 ‘ ’ 1

可以看到,擬合曲線的截距和系數(shù)都極顯著,所以數(shù)據(jù)間關(guān)系為二項(xiàng)式關(guān)系
3、繪圖

# 編寫擬合曲線公式的函數(shù)
lm_eqn = function(data){
  m=lm(y ~ x + I(x^2), data) 
  eq <- substitute(italic(y) == a+b %.% italic(x)+b %.% italic(x^2)*","~~italic(r)^2~"="~r2,
                   list(a = as.numeric(format(coef(m)[1], digits = 3)),
                        b = as.numeric(format(coef(m)[2], digits = 3)),
                        c = as.numeric(format(coef(m)[3], digits = 4)),
                        r2 = format(summary(m)$r.squared, digits = 3)))
  as.character(as.expression(eq))
} 
#ggpot 作圖
p <- ggplot(data,aes(x=x,y=y)) + geom_point()
p + stat_smooth(method='lm',formula = y~x+ I(x^2),colour='red') +
  scale_x_continuous(limits = c(50,130)) + 
  theme(axis.text=element_text(colour = 'black',size = 12), axis.title=element_text(size = 14)) +
  annotate("text", x=50, y=15, label=lm_eqn(data), hjust=0, size=4,parse=TRUE)+
  labs(x="機(jī)器測(cè)量",y="人工測(cè)量",title = "BL")+ theme(plot.title = element_text(hjust = 0.5))

4、結(jié)果


BL相關(guān)性曲線
?著作權(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),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 中小學(xué)生閱讀的問(wèn)題 中小學(xué)生的閱讀問(wèn)題:“背誦有余,閱讀不足;浪漫有余,理性不足;重視有余,準(zhǔn)備不足;限制有余,自...
    趙雪奎閱讀 270評(píng)論 0 1
  • 下午非常特別的讀書會(huì)——《安的種子》, 萌,結(jié)合戲劇和課堂游戲給我們帶來(lái)培訓(xùn), 雖然最后拖了課錯(cuò)過(guò)一列車, 也讓我...
    三月小女子23點(diǎn)前睡覺(jué)閱讀 204評(píng)論 0 1
  • 天凈沙 詩(shī)夜 孤燈夜影窗紗, 筆飛流墨詩(shī)發(fā)。 綠袖溫巾暖茶。 盡收紙下, 鳥(niǎo)蟲(chóng)花草魚(yú)蝦。
    liuaimin閱讀 263評(píng)論 0 0
  • 之前一直覺(jué)得死磕一件事不是好事,但絕不是壞事。 最近發(fā)生的一件事,對(duì)這種看法有了改觀。 一個(gè)同事,做事特別認(rèn)真,對(duì)...
    霞子小窩閱讀 1,399評(píng)論 0 1
  • 從小到大,我最怕的就是寫作,作文,看書。拿著書就想睡覺(jué)的人,卻因?yàn)楹⒆佑幸惶鞎?huì)改變。 睿從小就愛(ài)看書,為了讓她喜歡...
    櫻花520閱讀 105評(píng)論 0 1

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