2015-07-21 125 views
0

大家好,我與ggplot2很難過。直方圖ggplot2錯誤的頻率

我想要做一個直方圖來代表例子:性別(男性和女性= y)與癌症(C)5個年齡段(A = x)的百分比。

pp <- ggplot(data=base, aes(x=AGE, y=factor(C), fill=Sex)) + 
    geom_bar(aes(y = (..count..)/sum(..count..)))+ 
    scale_fill_grey()+ 
    theme_bw() 
pp 

我有直方圖,但頻率錯誤。 有人可以告訴我爲什麼?

我很難解決它我自己的問題。

在此先感謝 彼得

+0

http://docs.ggplot2.org/current/geom_histogram.html – CMichael

回答

0

也許使用geom_histogram

PP <- ggplot(base[base$C==TRUE,], aes(x=AGE, fill=Sex)) 
PP <- PP + geom_histogram() 

注:我不知道,如果C被編碼爲一個布爾值。 -

更新頻率如下獲得:

PP <- ggplot(base[base$C==TRUE,], aes(x=AGE, fill=Sex)) 
PP <- PP + geom_histogram(aes(y = ..density..)) 

更新 - 澄清OP的表明他是不是找一個直方圖畢竟:

所以你需要重新安排你的數據所需的barplot一點點,創建彙總版本,例如,通過使用plyr::ddply()

require(plyr) 
baseA <- ddply(base, .(AGE,Sex), summarize, cancerShare=sum(C==TRUE)/length(C)) 

之後,我們可以繪製條形圖像THI s:

g <- ggplot(baseA,aes(x=as.factor(AGE),y=cancerShare,fill=Gender)) 
g <- g + geom_bar(stat="identity",position="dodge") 
g 
+0

是CMicheal C是一個布爾值。坦克四你的答案。但事情是代替泰恩伯爵,我想有頻率。 – Peter

+0

看到我的更新以上 – CMichael

+0

謝謝CMichael我試過這個,但不幸的是,它仍然沒有給我每個羣體的百分比:(我也試過:aes(y =(..count ..)/ sum(.. count ..) ))+ – Peter