我需要复制直方图/条形图的某种格式。我已经使用ggplot
进行了一些很好的修改,以便对分类x变量进行分组并使用HEX指定颜色。
以下是我尝试绘制/复制的内容:
这是我的数据结构的MWE:
sex <- sample(0:1, 100, replace=TRUE)
group <- sample(2:5, 100, replace=TRUE)
data <- data.frame(sex, group)
library(ggplot2)
ggplot(data, aes(x = group, group=sex, fill=factor(sex) )) +
geom_histogram(position="dodge", binwidth=0.45) +
theme(axis.title.x=element_blank(), axis.title.y=element_blank()) +
guides(fill=guide_legend(title="sex")) +
scale_y_continuous(labels = scales::percent_format()) +
scale_fill_manual(values=c("#b6181f", "#f6b8bb"))
我明白了:
我无法处理的小事情是:
但最重要的是,我不知道如何为一个组添加一个百分比值,一个性别到每个栏的顶部..
我期待着一些建议:)
答案 0 :(得分:3)
首先,我会将您的x轴数据视为因子并将其绘制为条形。将百分比值文本添加到条形顶部会显示以下问题:Show % instead of counts in charts of categorical variables。
此外,y轴百分比值不是四舍五入的问题,它们实际上不是百分比值。 y = ..prop..
解决了这个问题。
你在寻找那个(我总结了一切)?
sex <- sample(0:1, 100, replace=TRUE)
group <- sample(2:5, 100, replace=TRUE)
data <- data.frame(sex, group)
labs <- c("Score < 7", "Score\n7 bis < 12", "Score\n12 bis < 15",
"Score\n15 bis < 20","Score >= 20")
ggplot(data, aes(x = as.factor(group), y = ..prop.., group = sex, fill = factor(sex) )) +
geom_bar(position = "dodge") +
geom_text(aes(label = scales::percent(..prop..)),
position = position_dodge(width = 0.9), stat = "count", vjust = 2) +
labs(x = NULL, y = NULL) +
guides(fill = guide_legend(title = "sex")) +
scale_y_continuous(labels = scales::percent_format()) +
scale_fill_manual(values=c("#b6181f", "#f6b8bb")) +
scale_x_discrete(labels = labs)