2013-05-09 155 views
6

我已经手动创建了具有95%置信度带的预期寿命数据集。我在时间尺度上绘制了这些曲线,但宁愿将这些乐队变成阴影而不是虚线。显示的代码:使用ggplot2手动着色置信区间

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 2013-05-09 13:51:42

+2

并且请为其他人提供数据以尝试您的代码(或使用R提供的数据)。 – Arun 2013-05-09 13:52:23

+1

请注意,如果您在ggplot中使用'$',您可能会犯这种错误 - 也就是俗语:“ggplot2不在乎'$',它在'data'上传播。 – baptiste 2013-05-09 14:31:16

回答

25

如果您提供了您自己的数据,这将会有所帮助,但我认为以下内容会对您有所帮助。

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

##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) 

enter image description here

+0

如果我为两个或更多的geom_line(...)+ geom_ribbon(...)绘制相同的x,但不同的y,ymin,ymax,我该如何添加图例/标签? – jf328 2015-10-20 14:08:28