2015-01-07 31 views
7

R version 3.1.1 (2014-07-10) Platform: i386-w64-mingw32/i386 (32-bit)ggplotに負と正の累積ヒストグラムをプロットする?

私はggplot2でヒストグラムを作成しています。目的は、1つのプロットで、負側と正側の累積ヒストグラムを組み合わせることです。簡単に私はヒストグラムをネガティブ側とポジティブ側に分けてプロットすることができますが、それらを組み合わせるとすぐに混乱します。

サンプルデータ:

df <- structure(list(NEG = c(-42.962, -1.86, -13.275, -56.188, -2.25, 
-12.199, -3.953, -13.309, -4.512, -11.461, -19.813, -54.311, 
-59.934, -7.045, -14.44, -40.829, -143.034, -233.009, -70.72, 
-5.578), POS = c(180.328, 290.809, 156.894, 31.414, 629.74, 590.672, 
268.89, 69.618, 415.007, 138.444, 10.139, 20.565, 106.027, 69.129, 
19.809, 8.22, 53.711, 36.035, 11.694, 12.705)), .Names = c("NEG", 
"POS"), row.names = c(NA, 20L), class = "data.frame") 

コード肯定的な側面については、仕事ん:

ggplot(df)+ 
     geom_histogram(aes(x= POS, y=rev(cumsum(rev(..count..)))/4),binwidth=1) 

コード負の側面についても作業を行います。

ggplot(df)+ 
     geom_histogram(aes(x= NEG, y=cumsum(..count..)/4),binwidth=1) 

しかし、これらの二つの層を組み合わせることA生成します混乱:

ggplot(df)+ 
     geom_histogram(aes(x= POS, y=rev(cumsum(rev(..count..)))/4),binwidth=1)+ 
     geom_histogram(aes(x= NEG, y=cumsum(..count..)/4),binwidth=1) 

私があなたを助けてくれることを願っています!

ありがとうございます!

+2

ニース、再現性の例として、あなたは~~しようとしているコードとの明確な質問>(1)。乾杯。 – Henrik

答えて

7

問題は、両方のレイヤーで、累積合計がx軸全体にわたって計算されることです。

ggplot(df)+ 
    geom_histogram(aes(x= POS, y=ifelse(x>=0, 
             rev(cumsum(rev(..count..)))/4, 
             0)), 
       binwidth = 1)+ 
    geom_histogram(aes(x= NEG, y=ifelse(x<=0, 
             cumsum(..count..)/4, 
             0)), 
       binwidth = 1) 

resulting plot

+0

ありがとう!このソリューションはうまくいきます! – VDK

関連する問題