使用这两个data.frames,
> head(subset(ds.SG, mapped %in% c("rowA", "rowH")))
starttime mapped meandist se
1 0 rowA 126.2125 9.094259
8 0 rowH 113.3708 9.552690
9 60 rowA 134.4000 10.693561
16 60 rowH 115.8542 9.618504
17 120 rowA 148.9458 10.630781
24 120 rowH 124.8958 12.446691
> head(subset(tdists, Group1=="rowA" & Group2=="rowH" & value<0.05))
starttime Group2 Group1 value vs
259 540 rowH rowA 0.0273469043 rowA.rowH
287 600 rowH rowA 0.0032981182 rowA.rowH
315 660 rowH rowA 0.0170252864 rowA.rowH
343 720 rowH rowA 0.0195995924 rowA.rowH
371 780 rowH rowA 0.0047677680 rowA.rowH
399 840 rowH rowA 0.0004149648 rowA.rowH
我可以创建以下2个图:
AB.distplot <-qplot(starttime, meandist, data=subset(ds.SG, mapped %in% c("rowA", "rowH")),
geom="line",colour=mapped, alpha=1)
+ geom_ribbon(aes(ymin=meandist-se, ymax=meandist+se, alpha=0.1, fill=mapped, colour=NULL))
+ geom_line(size=1)
AB.Tplot <-qplot(starttime, 0, data = subset(tdists, Group1=="rowA" & Group2=="rowH" & value<0.05))
我希望将它们组合在一起AB.Tplot
根据我发现here的想法,我尝试了这个:
AB.distplot
由于&#39;映射&#39;仅在AB.distplot + geom_point(
data = subset(tdists, Group1=="rowA" & Group2=="rowH" & value < 0.5),
aes(starttime, 0),
position = position_jitter(height=0.8),
size=1)
#Error in eval(expr, envir, enclos) : object 'mapped' not found
中,我不希望在ds.SG
中找到它(在tdists
中使用)。为什么geom_point
正在寻找它,我怎么能超越我喜欢的方式呢?
由于@Joram没有我的所有数据,他无法确切地看到该情节将如何结果。在他出色的解释之后,这就是我所做的和我得到的:
ggplot
答案 0 :(得分:2)
这个答案有些推测,因为我只有一小部分数据可供使用。
但我认为是时候停止使用qplot
。
您遇到错误的原因是, ggplot2 中的图层之间会继承美学映射。因此,您在qplot
内映射的美学将向下传递到每个后续图层,除非它们被重新定义或显式取消映射。
出于这个原因,当使用不同的数据集构建具有大量图层的图时,使用更明确的ggplot
表示法通常会更加清晰。
我认为这更像是你所追求的:
tdists$y <- 0
ggplot(data = subset(ds.SG, mapped %in% c("rowA", "rowH")),aes(x = starttime,y = meandist)) +
geom_ribbon(aes(ymin=meandist-se, ymax=meandist+se, alpha=0.1, fill=mapped, colour=NULL)) +
geom_line(aes(colour = mapped),alpha = 1,size = 1) +
geom_point(data = subset(tdists, Group1=="rowA" & Group2=="rowH" & value < 0.5),
aes(y = y),
position = position_jitter(height=0.8),
size=1)
您的原始qplot
来电应该基本上包含geom_line
图层,因此我不确定您为何添加了另一个geom_line
来电。也许它被功能区掩盖了。同样,明确地构建以ggplot()
开头的层使得这一点更加清晰。