我希望在单个图表上绘制多个类别,每个类别的百分比加起来总共为100%。例如,如果我正在绘制男性与女性,每个分组(男性或女性)将总计100%。我正在使用以下代码,其中百分比似乎适用于两个图表上的所有组,即如果您将左侧和右侧图表上的所有条形图相加,则它们将总计100%,而不是左侧图上的黄色条形图总计100%,左侧图中的紫色条形图等。
我知道可以通过使用stat ='identity'实现此目的,但是否有一种方法在绘制之前无需整理数据框架就能在ggplot中实现?
我知道可以通过使用stat ='identity'实现此目的,但是否有一种方法在绘制之前无需整理数据框架就能在ggplot中实现?
library(ggplot2)
tmp <- diamonds %>% filter(color %in% c("E","I")) %>% select(color, cut, clarity)
ggplot(data=tmp,
aes(x=clarity,
fill=cut)) +
geom_bar(aes(y = (..count..)/sum(..count..)), position="dodge") +
scale_y_continuous(labels = scales::percent) + facet_wrap(vars(color))