是否可以在geom_line上添加一个带平均距离绝对值的平滑带?
我有一个像这样的矩阵:
mean Date abs(mean-observed_value)
1 0.2955319 2015-08-04 1.167321e-02
2 0.2802859 2015-08-12 7.537708e-03
3 0.2671653 2015-08-20 2.074987e-03
4 0.2552016 2015-08-28 4.883826e-03
5 0.2554279 2015-09-05 4.419968e-03
在abs(mean-observed_value)列上有许多时间序列,每个时间序列有54个观察值,日期和平均值就像这些组一样,每54行重复一次。我正在绘制所有时间序列(使用正确的value
,如下所示:
p<-ggplot() +
geom_line(data = y_m, aes(x = Date, y = value, group = variable), color="steelblue", size =0.1)
p + geom_line(data =y_mean, aes(x = Date, y = as.numeric(df.ts_mean)), color=1, size =2) + ylab("EVI")
但现在有了偏差,我想把它们描绘成一个平滑的乐队。像这样的东西:
我会很感激任何可能的解决方案!非常感谢!
答案 0 :(得分:1)
您可以使用geom_ribbon
包中的ggplot2()
,其中您可以设置ymin
和ymax
值(在您的情况下,它将是 abs 列),这是一个示例代码:
library(ggplot2)
huron <- data.frame(year = 1875:1972, level = as.vector(LakeHuron))
h <- ggplot(huron, aes(year))
h + geom_ribbon(aes(ymin = level - 1, ymax = level + 1), fill = "grey70") +
geom_line(aes(y = level))
请将未来的样本后数据作为dput()
输出,使用起来要容易得多,而不是复制每个值!