[R] 添加誤差棒的分組折線圖:geom_path: Each group consists of only one observation. Do you need to adjust the...

想做一個(gè)簡單的分組折線圖,并添加誤差棒,類似下面這樣的:

image.png

用ggplot似乎很簡單就能實(shí)現(xiàn):ggplot+geom_errorbar+geom_line+geom_point,重點(diǎn)在于計(jì)算誤差棒。
還是看示例數(shù)據(jù)吧:
image.png

Type是轉(zhuǎn)錄和蛋白兩個(gè)組學(xué),Region是某個(gè)組織的不同區(qū)域。想作如上圖的樣子,即不同區(qū)域在兩個(gè)組學(xué)的折線圖分布。

計(jì)算誤差需要安裝Rmisc包中的summarySE函數(shù)。

# summarySE 計(jì)算標(biāo)準(zhǔn)差和標(biāo)準(zhǔn)誤差以及95%的置信區(qū)間.
library(Rmisc)
tgc <- summarySE(df2, measurevar="Abundance", groupvars=c("Type","Region"))

數(shù)據(jù)變成這樣:


image.png

接下來就是作圖了。

# 帶有標(biāo)準(zhǔn)誤差線的折線圖
# Standard error of the mean
ggplot(tgc, aes(x=Region, y=Abundance, colour=Type)) +   
  geom_errorbar(aes(ymin=Abundance-se, ymax=Abundance+se), width=.1) +
  geom_line() +
  geom_point()

得到警告:

image.png

圖是這樣的,線沒有畫出來。
image.png

查了下網(wǎng)上的答案:https://blog.csdn.net/tanzuozhev/article/details/51106089
它的數(shù)據(jù)形式幾乎和我的一樣,但是卻能正常畫出來。

我想了想,是不是分組變量Type和Region沒設(shè)為因子,但是設(shè)了還是一樣。

查了下錯(cuò)誤,說是要映射group,令group=1。https://stackoverflow.com/questions/27082601/ggplot2-line-chart-gives-geom-path-each-group-consist-of-only-one-observation
我這里設(shè)置了兩組,用group=1或2顯然不行,于是將group映射到變量:

ggplot(tgc, aes(x=Region, y=Abundance, colour=Type, group=Type)) +  
  geom_errorbar(aes(ymin=Abundance-se, ymax=Abundance+se), width=.1) +
  geom_line() +
  geom_point()

果然解決了


image.png

但我還是不明白,為啥網(wǎng)上的示例同樣是兩個(gè)分組變量,不用group也能做出來。

?著作權(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)容