关于ggplot2中阴影区域的使用有一个fewposts,但我不认为任何回答我的问题。我有两条斜线用于满足多种条件的线条,我想遮蔽它们之间的区域。下面是示例性数据:r - ggplot2 - 在两个geom_abline图层之间创建一个阴影区域
dat <- data.frame(cond1=c("a","a","b","b"),
cond2=c("c","d","c","d"),
x=c(1,5),
y=c(1,5),
sl=c(1,1.2,0.9,1.1),
int=c(0,0.1,0.1,0),
slopeU=c(1.1,1.3,1.2,1.2),
slopeL=c(.9,1,0.7,1))
这里,sl
是从单独的拟合过程的平均斜率参数,和slopeU
和slopeL
表示在每个条件下的斜率估计上下置信区域。拦截限制为相同。下面的代码绘制每个条件使用一些刻面的最佳拟合线:
p <- ggplot(dat,aes(x=x,y=y,colour=cond1))
p <- p + facet_grid(. ~ cond2)
p <- p + geom_blank()
p <- p + geom_abline(aes(intercept=int,slope=sl,colour=cond1),data=dat)
p
我想在alpha=.5
在对应于添加由intercept=int, slope=slopeU
和intercept=int, slope=slopeL
的情节和阴影它们(例如之间的区域定义的行内cond1颜色)。
我意识到,通过一点操作,我可以创建一个数据框,为至少两个x值指定这些行的值,然后绘制相应的geom_ribbon或geom_polygon以创建阴影区域,但是我想查找更多优雅的方案。或者是从斜坡上手动指定一些坐标并拦截唯一的方法?我将如何最好地创建所需的数据框(这将需要有比原始框架更多的行来说明条件和x,y对的所有组合)。
太棒了;谢谢乔兰。 – tsawallis 2012-03-13 15:34:14
所以,基本上与我应用的问题一起工作,但我无法将阴影区域的颜色设置为cond1,即使通过精确运行您的解决方案。填充的色带区域为灰色(alpha = .5),但也有细实线边框。我哪里错了?这可能是一个ggplot2版本的差异?我在0.9.0上。我使用的ggplot命令与原始文章中的一样,在下面粘贴了'p + rib + guides(fill = guide_legend(override.aes = list(alpha = 0.1)))'。 – tsawallis 2012-03-13 16:11:28
@waldog对不起,只是错过了一些复制粘贴我的代码。您只需在顶层'ggplot()'调用或函数内的'geom_ribbon'调用中在'aes()'中添加'fill = cond1'。我会立即编辑... – joran 2012-03-13 16:15:58