大家好,我对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 :(得分: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的澄清表明他毕竟不是在寻找直方图:
因此,对于所需的条形图,您需要稍微重新排列数据并创建摘要版本,例如,使用plyr::ddply()
:
require(plyr)
baseA <- ddply(base, .(AGE,Sex), summarize, cancerShare=sum(C==TRUE)/length(C))
之后我们可以绘制这样的条形图:
g <- ggplot(baseA,aes(x=as.factor(AGE),y=cancerShare,fill=Gender))
g <- g + geom_bar(stat="identity",position="dodge")
g