是否可以包含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))
这会导致错误。最后我想将这里指定的点添加到线图上。
答案 0 :(得分:6)
ggplot2 中的映射美学遵循一种继承模式。当你在&#34; top&#34;级别,在ggplot()
中,它们会自动传递给所有后续图层。
这意味着geom_point
正在variable
中寻找d2
列。它不会查找y
或value
列,因为您在geom_point()
中明确重新映射了x和y美学。
解决方案是将顶级美学映射从ggplot()
移至geom_line()
,或移至group
中的取消地图 geom_point
使用group = NULL
。
此外,Didzis在评论中指出了第三个解决方案,即将inherit.aes = FALSE
添加到geom_point
。