2012-04-08 50 views
2

任何人都可以回答我如何繪製一個條形圖,它將數字x-變量映射到由ggplot2中的因子分組的相對頻率?重要的是: 相對頻率應計算爲分組屬於一個因子的x值內的頻率。現在它們被計算爲相對於總計 x值的x值。在ggplot2中繪製相對頻率與躲避條形圖

爲了說明它,一個例子:

library(ggplot2) 

data <-data.frame(x=runif(100,0:1), f=sample(1:3,100,replace=TRUE)) 
data$f <-factor(data$f) 
p <-ggplot(data, aes(x, colour=f, fill=f, group=f)) + 
    xlim(0,1) + 
    scale_y_continuous('Relative Frequency', formatter='percent') # or labels=percent 

讓我們繪製它們刻面。然後Y軸顯示比例是按組計算的。我使用這個代碼:

p + stat_bin(aes(y=..count../sum(..count..)), position='dodge', binwidth=0.2) +   facet_grid(~f) 

讓我們計劃他們躲閃。 y軸表示比例是指整個數據集。在這裏,我使用以下代碼:

p + stat_bin(aes(y=..count../sum(..count..)), position='dodge', binwidth=0.2) 

我的目標是創建類似於第二與y軸每組可變的頻率的曲線圖。

預先感謝您的幫助! 賈納

+0

您的第一張圖不是給出每個方面的比例。您需要預先彙總數據,然後將其傳遞給ggplot。 – 2012-04-09 20:31:41

回答

2

我面臨同樣的問題,因爲你的,我想通了:不是陰謀..count../sum(..count..),情節..density..*your_binwidth 事實上,垃圾桶統計創建的..density..變量基本上等於比例/ bindwidth。 您的密碼變爲:

p + stat_bin(aes(y=..density..*0.2), position='dodge', binwidth=0.2) 
+0

-1;除了這個答案是不完全正確的:http://stats.stackexchange.com/questions/4220/a-probability-distribution-value-exceeding-1-is-ok。請參閱:http://stackoverflow.com/questions/17655648/how-can-i-plot-the-relative-proportions-of-two-groups-using-a-fill-aesthetic-in尋找正確的解決方案。 – russellpierce 2013-07-22 00:26:21