使用ggplot2手动阴影置信区间

21

我手动创建了一组包含95%置信区间的寿命期望值数据集。我将这些数据随时间绘制成曲线,但我更希望把这些区间以阴影方式呈现,而不是使用虚线。代码如下:

p1 = ggplot()
p2 = p1 + geom_line(aes(x=pl$Time, y=pl$menle), colour="blue")
p3 = p2 + geom_line(aes(x=pl$Time, y=pl$menlelb), colour="blue", lty="dotted")
p4 = p3 + geom_line(aes(x=pl$Time, y=pl$menleub), colour="blue", lty="dotted")

除了只有线条,是否有一种简单的方法来着色区间? 如果我错过了什么简单的东西,我提前道歉,但我找不到任何迹象表明可以简单地完成这个任务。


4
请改用geom_ribbon - joran
2
请提供数据以便他人尝试您的代码(或使用R可用的数据)。 - Arun
2
请注意,如果您在ggplot中使用$,那么您可能是错误的 - 这也被称为格言:“ggplot2不关心$,它依赖于data”。 - baptiste
1个回答

56

如果您提供自己的数据将会很有帮助,但我认为以下内容可以达到您想要的效果。

首先,创建一些虚拟数据:

##I presume the lb and ub are lower/upper bound
pl = data.frame(Time = 0:10, menle = rnorm(11))
pl$menlelb = pl$menle -1
pl$menleub = pl$menle +1

然后创建图表。使用geom_ribbon创建阴影区域:

ggplot(pl, aes(Time)) + 
  geom_line(aes(y=menle), colour="blue") + 
  geom_ribbon(aes(ymin=menlelb, ymax=menleub), alpha=0.2)

在此输入图片描述


1
如果我为相同的x但不同的y、ymin和ymax绘制两个或多个geom_line(...) + geom_ribbon(...)集合,我该如何添加图例/标签? - jf328

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接