ggplot2警告:当ymin!= 0时堆栈没有很好地定义

Tyl*_*ker 31 r ggplot2

也许答案是要警告.我正在使用缩放和居中的变量来观察观察结果与平均值的差异.这个情节是一种常见的做法.但是当我这样做时,我会收到警告ggplot2.

Warning messages:
1: Stacking not well defined when ymin != 0 
Run Code Online (Sandbox Code Playgroud)

我喜欢让ggplot2和世界其他地方高兴,没有任何警告来到我的路上.我试图通过以下方式摆脱警告,并搜索相关问题的SO(请参阅底部的链接以获得一些更有希望的问题).我的朋友ggplot2仍在警告我.

问题(S):

  1. 如何让警告消失?
  2. 我可以忽略这个警告吗?
  3. 这种做法有问题吗?

代码尝试:

## The data
mtcars$scaled_mpg <- unlist(tapply(mtcars$mpg, mtcars$cyl, scale))
mtcars <- mtcars[order(mtcars$cyl), ]
mtcars$ID <- unlist(tapply(mtcars$cyl, mtcars$cyl, seq_along))
mtcars$ID <- factor(sprintf("%02d", mtcars$ID ))

##  ================ Attempt 1 ================   
ggplot(mtcars, aes(x = ID, y = scaled_mpg, fill = factor(cyl))) +
    geom_bar(stat="identity") + facet_grid(cyl~.)

##  ================ Attempt 2 ================     
ggplot(mtcars, aes(x = ID, fill = factor(cyl))) +
    geom_bar(aes(weight = scaled_mpg)) + facet_grid(cyl~.)

##  ================ Attempt 3 ================  
dat1 <- subset(mtcars, scaled_mpg >= 0)
dat2 <- subset(mtcars, scaled_mpg < 0)

ggplot() +
    geom_bar(data = dat1, aes(x = ID, y = scaled_mpg, 
        fill = factor(cyl)),stat = "identity") +
    geom_bar(data = dat2, aes(x = ID, y = scaled_mpg, 
        fill= factor(cyl)),stat = "identity") + 
    facet_grid(cyl~.)
Run Code Online (Sandbox Code Playgroud)

剧情:

在此输入图像描述

类似帖子:

Jul*_*ora 29

1)或者通过添加 position = "identity"geom_bar或,当然,通过使用

suppressWarnings(print(ggplot(...)))
Run Code Online (Sandbox Code Playgroud)

2-3)考虑技术方面 - 是的,你可以忽略它.此警告的原因与解释条形具有负高度而不仅仅是负值有关.