2012-04-02 10 views
8

ggplot2で非常に単純な積み重ね棒グラフを作成しようとしていますが、何らかの理由で動かず、エラーメッセージが表示されます: "pmin(y、 0):オブジェクト 'y'が見つかりません "。問題はどこですか?ggplot2積み重ね棒グラフ - オブジェクトyが見つかりません

factorvar <- c(1,1,1,2,2,2,3,3,3) 
factorvar <- factor(factorvar, labels=c("Type", "Size", "Outcome")) 
freq <- c(3,1,4,1,2,2,4,1,1) 
fillvar <- c(1,1,1,2,2,2,3,3,3) 
fillvar <- factor(fillvar) 

df.harvest <- data.frame(fillvar,freq,factorvar) 

harvest <- ggplot(df.harvest, aes(x=factorvar, y=freq, fill=fillvar)) + geom_bar() 
harvest 
+2

'geom_bar'呼び出しに' stat = "identity" 'を追加するとどうなりますか?' geom_bar(stat = "identity") '? –

答えて

1

は、私は、エラーメッセージが何を意味するのかわからないんだけど、あなたは(あなたのfillvar変数の代わりに)fillvar = c(1,2,3,1,2,3,1,2,3)を、使用する場合には、積み上げ棒グラフを取得します。

2

私は、

qplot(factor(freq), data=df.harvest, geom="bar", fill=factor(factorvar)) 私は何をカウントすると、何をスタックしたいが、あなたのデータの一部を使用してこのコード

qplot(factor(freq), data=df.harvest, geom="bar", fill=factorvar) 

を理解すれば、私はこれを取得、本当にわからないんだけど

あなたはそれを見ていますか?

3

これはかなり古いですが、私はそれのためにすべての良い答えを見ていない:

あなたがy軸を提供している場合は、常にgeom_barで引数を指定する必要があります。あなたは既にY軸として周波数を提供している、あなたはまた、geom_bar(stat = "identity")

を指定する必要がありますので、geom_barはあなたのためにそれを計算したくない

、ここにあなたのfillvarは、基本的にfactorvarと同じであるとしても意味がありません1つを軸として、1つを塗りつぶし色として使用します。

ただし、異なる場合は、geom_bar(stat = "identity", position="dodge")または(stat = "identity", position="stack")も指定する必要があります。

デフォルトではstatがあなたのケースでは「bin」に切り替わり、エラーが発生していました。デフォルトでは、位置はstackです。

関連する問題