2013-10-20 13 views
31

おそらく答えはちょうど警告することです。私は、観測値が平均値とどのように異なるかを見るために、スケールされた中心の変数を使用することを断言しています。このプロットは一般的なプラクティスです。しかし、私がこれをすると、私はggplot2から警告を受け取ります。ggplot2警告:ymin!= 0のときに積み重ねがうまく定義されていない

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

私はggplot2を持っていて、残りの世界は幸せで、警告は私のところに届きません。私は、次のような方法で警告を取り除こうとしました。関連する質問については、SO(より有望な質問については下のリンクを参照)を検索しました。それでも私の友人ggplot2は私に警告しています。

QUESTION(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~.) 

プロット:

enter image description here

同様の記事:

+3

はい。この場合、警告は無視されます。 barchartsにゼロ以外の参照を使用することによって、横たわっている統計戦略をコミットしている可能性があることに気づかせるのは、まさにそこにあります。ヘック、あなたはファセットを追加した後にスタッキングすることさえありません。 –

答えて

29

1)のいずれかgeom_barからaddingposition = "identity"によって、または、もちろん、)

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

2-3用いた技術的側面を考慮して - はい、あなたはそれを無視することができます。この警告のreasonは、バーが負の値ではなく、の高さがであると解釈することに関連しています。

関連する問題