2013-10-20 13 views
31

Forse la risposta è solo essere avvertiti. Sto attmepting di usare una variabile in scala e centrata per vedere come le osservazioni differiscono dal valore medio. Questa trama è una pratica comune. Ma quando lo faccio ricevo un avviso da ggplot2.avviso ggplot2: impilamento non ben definito quando ymin! = 0

Warning messages: 
1: Stacking not well defined when ymin != 0 

Mi piace avere ggplot2 e il resto del mondo felice e nessun avviso che viene a modo mio. Ho cercato di eliminare l'avviso nei seguenti modi e ho cercato SO (vedi i collegamenti in basso per alcune domande più promettenti) per domande correlate. Ancora il mio amico ggplot2 mi sta avvisando.

Question (s):

  1. Come posso fare l'avvertimento andare via?
  2. Posso ignorare l'avviso?
  3. C'è qualcosa di sbagliato in questa pratica?

tentativi Code:

## 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~.) 

La trama:

enter image description here

Interventi simili:

+3

Sì. L'avviso deve essere ignorato in questo caso. È solo lì per mettere in guardia le persone che potrebbero commettere la strategia di menzogne ​​con statistiche usando un riferimento diverso da zero per i diagrammi a barre. Diamine, non ti stai nemmeno impilando dopo aver aggiunto le faccette. –

risposta

29

1) Sia con addingposition = "identity" a geom_bar o, naturalmente in base

suppressWarnings(print(ggplot(...))) 

2-3) Considerando il lato tecnico - sì , puoi ignorarlo. Lo reason per questo avviso è relativo all'interpretazione di barre con altezza negativa pari a anziché solo valori negativi.

Problemi correlati