r ggplot2 用geom_rect忽略未知的美学

r ggplot2 Ignoring unknown aesthetics with geom_rect

提问人:kleber 提问时间:6/5/2018 更新时间:6/5/2018 访问量:2436

问:

我正在尝试做一个瀑布图,如以下示例所示:

base2 <- data.frame(rot=c("PRini","shk1","PRfim"), value=c(10,5,15),order=c(1,2,3), fim=c(10,15,0), 
                inicio=c(0,10,15), imp=c("net","pos","net"))   
ggplot(base2, aes(fill = imp)) +
geom_rect(aes(x = rot,
              xmin=order - 0.3,
              xmax=order + 0.3, 
              ymin=fim,
              ymax=inicio),
          position="dodge")

当我执行该代码时,我收到以下消息:

Warning: Ignoring unknown aesthetics: x

如果删除该参数,则会显示以下消息:x

Error: position_dodge requires the following missing aesthetics: x

当我删除参数时,会显示绘图,但没有标签。我想要一些建议来删除第一个保留标签。positionxwarningx

提前致谢。

r ggplot2

评论


答:

2赞 mischva11 6/5/2018 #1

把所有的美学都放在你的ggplot(aes())中,那么你就不会收到警告。然后,geom_rect() 将从 ggplot() 获取 aes。

    ggplot(base2, aes(fill = imp, x = rot, xmin=order - 0.3,
+                              xmax=order + 0.3, 
+                              ymin=fim,ymax=inicio)) +
+          geom_rect( position="dodge")

另一种解决方案作为肮脏的解决方法: 看起来你的情节很好,但它只是给你警告。您也可以用于忽略警告。suppressWarnings()

评论

0赞 kleber 6/5/2018
非常感谢,@mischva11!这就是我一直在寻找的解决方案!就像你说的,情节很好,但我想删除.warning