2016-08-04 6 views
0

問題があります。私は私のエラーバー標準エラー(SE)を使用します。私のエラーバーは私のバーの上にあります。私はすでにgminplot自体にyminとymaxを置いてみましたが効果はありません。ggplot2バーのエラーバーの位置が間違っています

マイデータフレームは、次のようになります。

ID variable  se 
1 A 14.340695 0.7917790 
2 B 32.506312 0.9092173 
3 C 7.279953 0.0444325 

そして、私は次のコードを使用:

df$variable=as.numeric(as.character(df$variable)) 
limits<-aes(ymin=df$variable - df$se, ymax=df$variable + df$se) 
r<-ggplot(df, aes(x=ID, y=factor(variable), fill=variable)) 
r + geom_bar(position=position_dodge(), stat="identity") + geom_errorbar(limits) 

error_barsの位置はあまりより高くなってしまう理由を私は知らないがバー自体

私はあなたの助けを請う、多くのありがとう!

+1

'aes'で' df $ 'を使わないでください。 – Roland

+0

これは問題を解決しませんが、私はなぜそれを使用しないかに興味があります。私はggplot2の新機能です。 @Roland plzは私にそれを説明できますか? – Momina

+0

プロットが作成されるとき、 'aes'で指定された変数は、' ggplot'またはgeomの 'data'引数に渡されるdata.frame内で評価されます。 'df $'を使うと、プロットコードの外のdata.frameからそれらを取ります。そして時にはggplot2がデータを並べ替えます。その結果、ggplot2に渡されたdata.frameで評価された変数とggplot2の外側にある変数は、それ以上一致しません。 – Roland

答えて

0

yを因子に設定したものと思われます。あなたがそれを削除すると、動作します:

ggplot(df, aes(x=ID, y=variable, fill=variable)) + 
    geom_bar(stat="identity") + 
    geom_errorbar(aes(ymin=variable-se, ymax=variable+se)) 
+0

@Shirin Glanderありがとうございました!あなたは私の時間を解決しました。 – Momina

関連する問題