2017-07-07 20 views
0

Rの棒グラフでデータセットの2つの半分をプロットしようとしています。データセットがレイヤーではなくx軸の反対側にあることが必要です軸の同じ側にお互いの上にある。私のチャートは現在、次のようになります。私はstackdirを使用しようとしたR内のX軸を横切るサブプロットを反転するBarchart

p <- ggplot(df_customer, aes(factor(income), percent_travel, fill = gender)) + 
    geom_bar(stat="identity", data = subset(df_customer, gender == "F")) + 
    geom_bar(stat="identity", data = subset(df_customer, gender == "M"), stackdir = "down") + 
    scale_x_discrete(name = "Annual Income ($1000's)", breaks=seq(-10, 100, 10)) + 
    scale_y_discrete(name = "Income Spent on Travel (%)", breaks=seq(0, 8, 2)) 
p 

が、私はそれがだと思う:ここ

enter image description hereが今私のコードです:私はそれは次のようになりたい enter image description here

散布図に対してのみ機能する属性。データセットのいずれかの値をすべて負にすることで、結果を得ることができるかもしれませんが、理想的なソリューションのようには見えません。

また、私のy軸スケールが表示されない理由は何ですか?

ありがとうございます!

+0

代表データセットは、あなたのより多くの有用な応答を取得します追加。 –

答えて

1

これを行う方法の1つです。 yは離散ではなく連続的なスケールであることに注意してください。

p <- ggplot(df_customer, aes(x = as.factor(income), 
          y = percent_travel * ((-1)^(gender == "F")), 
          fill = gender)) + 
    geom_bar(stat = "identity") + 
    scale_x_discrete(name = "Annual Income ($1000's)") + 
    scale_y_continuous(name = "Income Spent on Travel (%)", breaks=seq(-8, 8, 2)) 
p 

enter image description here

+0

これは完璧に働いた、ありがとう! x軸の下のyスケールの値を負の値ではなく正の値として表示する方法はありますか?技術的には軸の下にプロットされていてもすべてのデータが正でなければならないからです。 –

+0

'scale_y_continuous'オプションに' breaks'と 'labels'の値を設定すると、それを行うことができます。 '?scale_y_continuous'を見てみてください - 私はそれを試していませんが有望です。 –