如何用ggplot()的geom_bar()函数中具有零比例或计数的类别绘制相对频率直方图?

时间:2016-11-10 22:04:06

标签: r ggplot2 histogram

我使用ggplot2绘制相对频率直方图,比较按年龄类别划分的治疗组观察比例。

使用以下数据作为示例,其中Treatment_Group =" Treat = 0",Age_Group =" 30 +"类别:

Treatment_Group <- c("Treat=1","Treat=1","Treat=1","Treat=0","Treat=0")   
Proportion <- c(.1,.6,.3,.5,.5)
Age_Group <- c("< 20", "20-29", "30+", "< 20", "20-29")
RelFreq_Data <- data.frame(Treatment_Group, Proportion, Age_Group)
RelFreq_Data
  Treatment_Group Proportion Age_Group
1         Treat=1        0.1      < 20
2         Treat=1        0.6     20-29
3         Treat=1        0.3       30+
4         Treat=0        0.5      < 20
5         Treat=0        0.5     20-29

当绘制条形图时,Treatment_Group的条宽=&#34; Treat = 1&#34;,Age_Group =&#34; 30 +&#34;类别加倍。

ggplot(RelFreq_Data,aes(Age_Group,Proportion,fill=Treatment_Group))+
+   geom_bar(stat="identity",position="dodge")

enter image description here

有没有办法添加&#34;填充&#34;对于观测值为零的类别,条形宽度保持均匀?

1 个答案:

答案 0 :(得分:1)

您的数据中需要一行,显示比例为0的类别。

Treatment_Group <- c("Treat=1","Treat=1","Treat=1","Treat=0","Treat=0", "Treat=0")   
Proportion <- c(.1,.6,.3,.5,.5, 0)
Age_Group <- c("< 20", "20-29", "30+", "< 20", "20-29", "30+")
RelFreq_Data <- data.frame(Treatment_Group, Proportion, Age_Group)
ggplot(RelFreq_Data, aes(Age_Group, Proportion, fill = Treatment_Group)) + geom_bar(stat="identity", position="dodge")