如果我理解正确,你想用标准差显示所有三个参数(var0、var1和var3)的平均值。
我有两个解决方案。第一个暗示
dplyr
包装和计算
标准差和平均行
geom_ribbon()
:
library(dplyr)
library(magrittr)
q <- test_data
q <- q %>% rowwise() %>% transmute(date, mean=mean(c(var0,var1,var2), na.rm=TRUE), sd = sd(c(var0,var1,var2), na.rm=TRUE))
eb <- aes(ymax = mean + sd, ymin = mean - sd)
ggplot(data = q, aes(x = date, y = mean)) +
geom_line(size = 2) +
geom_ribbon(eb, alpha = 0.5)
你提到的第二个解决方案
stat_summary()
,它实际上与您提供的代码配合良好:
ggplot(data=test_data_long, aes(x=date, y=value)) +
stat_summary(fun.data ="mean_sdl", mult=1, geom = "smooth") + theme_bw()