【问题标题】:additional geom_point with ggplot group = variable带有 ggplot 组的附加 geom_point = 变量
【发布时间】:2014-07-25 07:35:12
【问题描述】:

是否可以包含 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))

这会导致错误。最终,我想将此处指定的点添加到折线图上。

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:

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

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

    解决方案是将顶级美学映射从ggplot() 移动到geom_line(),或者使用group = NULLgeom_point 中的group un-map

    另外,Didzis 指出了 cmets 中的第三种解决方案,即在geom_point 中添加inherit.aes = FALSE

    【讨论】:

    • 第三种解决方案是将inherit.aes=FALSE 添加到geom_point() 调用
    猜你喜欢
    • 1970-01-01
    • 2018-09-05
    • 2011-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多