代码之家  ›  专栏  ›  技术社区  ›  SantiClaus

当aes函数中没有提到XXX时,geom\u text返回“object XXX not found”错误

  •  1
  • SantiClaus  · 技术社区  · 7 年前

    Error in FUN(X[[i]], ...) : object 'typoft' not found . 我有两个几何文本,因为我把更多的文本放在情节的顶部。有谁能帮我一下,告诉我为什么会有

    1 回复  |  直到 7 年前
        1
  •  3
  •   divibisan    7 年前

    你的问题来自这样一个事实:当你定义一个 aes ggplot() 调用时,这些设置将由所有 geom_* 如果它们没有被覆盖的话。

    如果我们把你的问题简化为最小形式,我们就能清楚地看到这一点。我们可以把你的问题复制到最后一个 geom_text 独自一人:

    ggplot(gb, aes(x = y, y = y1, fill = typeoft)) + 
        geom_text(data = labdat, aes(x = x,y = y,label = label))
    
    Error in FUN(X[[i]], ...) : object 'typeoft' not found
    

    这是因为当你定义 在里面 ggplot x , y ,和 fill aes公司 在里面 几何图形文本 ,的值 是的 aes公司 几何图形文本 事实上 aes(x = x, y = y, label = label, fill = typeoft) typeoft 在对象中 labdat ,它返回一个错误。

    我们可以通过给你 几何图形文本 inherit.aes = FALSE :

    # This works!
    ggplot(gb, aes(x = y, y = y1, fill = typeoft)) + 
        geom_text(data = labdat,aes(x = x, y = y, label = label), inherit.aes = FALSE)
    

    现在 几何图形文本 只包括你告诉它的东西。

    推荐文章