首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >当我的aes函数中没有提到XXX时,geom_text返回"object XXX not found“错误

当我的aes函数中没有提到XXX时,geom_text返回"object XXX not found“错误
EN

Stack Overflow用户
提问于 2018-08-31 06:57:44
回答 1查看 845关注 0票数 2

当我运行下面的代码时,我得到了错误Error in FUN(X[[i]], ...) : object 'typoft' not found。我有两个geom_texts,因为我在图的顶部放置了更多的文本。有没有人能帮我一下,让我知道为什么有一个

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-31 07:19:45

您的问题来自这样一个事实:当您在ggplot()调用中定义一个aes时,如果这些设置没有被覆盖,那么它后面的所有geom_*都会继承这些设置。

如果我们把你的问题简化到它的最小形式,我们可以清楚地看到这一点。我们可以仅用最后一个geom_text复制您的问题:

代码语言:javascript
复制
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中定义aes时,需要为xyfill设置值。在geom_text中调用aes时,xy的值将被覆盖,但fill的值不会被覆盖。所以geom_textaes实际上看起来是这样的:aes(x = x, y = y, label = label, fill = typeoft)。但是,因为在对象labdat中没有名为typeoft的变量,所以它会返回一个错误。

我们可以通过向您的geom_text提供参数inherit.aes = FALSE来停止此行为

代码语言:javascript
复制
# 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)

现在,geom_textaes将只包含您告诉它拥有的内容。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52106424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档