2016-06-17 7 views
-2

私は負の値と正の値の両方を持つ変数のヒストグラムを作成しようとしていますが、変数の符号に基づいて数字が負の場合は緑、数字が正の場合は緑です。私はggplot2で次のコードを使用しています:ggplot2ヒストグラムのエラー:変数に基づく色

ggplot(aes(survey_grouped3$difference),data = survey_grouped3)+geom_histogram(binwidth = 10,fill = ifelse(survey_grouped3$difference >= 0,"green","red")) 

をしかし、私は次のエラーを取得しています:

Aesthetics must be either length 1 or the same as the data (26): fill 

誰もがこの上で私を助けることができますか?ありがとう!

編集:

ggplot(survey_grouped3, aes(difference)) +geom_histogram(aes(fill=ifelse(difference > 0,"green","red")), binwidth = 10) +scale_color_identity() 

コマンドを使用しますが着色はまだ機能していません。私は取得している出力を添付しています。

link to histogram

+0

あなたは事前にビン必要がありますあなたのgeom_bar(stat = 'identitiy') 'を使用してください。あなたはそれを持っているので、あなたは0にまたがるバーを持っています。 – Gregor

+0

ありがとうございました。棒グラフがうまくいくでしょう。私の素朴さのためにお詫びしますが、あなたはデータを事前にビンするためのコマンドで私を助けることができますか? – gagandeep91

+0

あなたのビンを定義するのに 'cut'を使います。 Rタグで 'bin data'を検索すると、たくさんのリソースがあります。シミュレートされたデータを共有するか、 'dput()'を使ってデータを共有することで、誰かが明示的に質問を再現できるように助けるかもしれません(http://stackoverflow.com/q/5963269/903061)。 – Gregor

答えて

0

あなたはそれがデータからマッピングするためaes内のカラーパーツを配置する必要があります。また、あなたはときaes内部のデータフレームを指定する必要はありません。

ggplot(survey_grouped3, aes(difference)) + 
    geom_histogram(aes(fill=ifelse(difference > 0,"green","red")), binwidth = 10) + 
    scale_color_identity() # So "red" and "green" actually map to red and green 

それとも、プロットに何かを追加する予定がない場合:

ggplot(survey_grouped3, aes(difference, fill=ifelse(difference > 0,"green","red"))) + 
    geom_histogram(binwidth = 10) + 
    scale_color_identity() 
関連する問題