额外的geom_point与ggplot group = variable

Kat*_*tyB 1 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))
Run Code Online (Sandbox Code Playgroud)

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

jor*_*ran 6

ggplot2中的映射美学遵循一种继承模式.当您在"顶部"级别映射美学时ggplot(),它们会自动传递到所有后续层.

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

的解决方法是,顶层审美映射从移动ggplot()geom_line(),或到未映射 groupgeom_point使用group = NULL.

此外,Didzis指出了意见,这是添加第三种解决方案inherit.aes = FALSEgeom_point.

  • 第三种解决方案是将`inherit.aes = FALSE`添加到`geom_point()`调用 (4认同)