我正在尝试创建一个多面条形图,每个方面的百分比加起来为 100。对此的解决方案似乎是group
和的组合..density..
。但是,在我看来,这group
与fill
.
数据:
test <- data.frame(
test1 = sample(letters[1:2], 100, replace = TRUE),
test2 = sample(letters[3:8], 100, replace = TRUE)
)
这得到正确的百分比:
ggplot(test, aes(test2)) +
geom_bar(aes(y = ..density.., fill=test2,group=test1)) +
facet_grid(~test1)
如您所见,总线fill
被覆盖:
但是,下面的代码尊重fill
但给了我错误的百分比(整个图表的总和为 100)(使用..密度..):
ggplot(test, aes(test2)) +
geom_bar(aes(y = ..count../sum(..count..), fill=test2)) +
facet_grid(~test1)
相关:我的这个老问题:在多面 ggplot 条形图中,y 实验室的百分比?.
是的——我可以创建额外的数据,但我觉得这属于表示层。实际上这感觉像一个错误?