额外的geom_point与ggplot group = variable

时间:2014-06-04 15:05:17

标签: r ggplot2

是否可以包含group = variable并在ggplot中添加另一个点。

例如:

require(MuMIn)
require(ggplot2)

data(Cement)
d <- data.frame(Cement)
dd <- melt(d,id.var = "y")
d2 <- runif(length(dd[,1]))
d2 <- data.frame(first = dd$y,
                 second = d2)

ggplot(dd, aes(x = y,y = value,group = variable)) + 
  geom_line() + 
  geom_point(data = d2,aes(x = first,y = second))

这会导致错误。最后我想将这里指定的点添加到线图上。

1 个答案:

答案 0 :(得分:6)

ggplot2 中的映射美学遵循一种继承模式。当你在&#34; top&#34;级别,在ggplot()中,它们会自动传递给所有后续图层。

这意味着geom_point正在variable中寻找d2列。它不会查找yvalue列,因为您在geom_point()中明确重新映射了x和y美学。

解决方案是将顶级美学映射从ggplot()移至geom_line(),或移至group中的取消地图 geom_point使用group = NULL

此外,Didzis在评论中指出了第三个解决方案,即将inherit.aes = FALSE添加到geom_point