我想用facelet來使用geo_bar
,獲得的百分比而不是絕對計數,但百分比應該是相對於每個方面,而不是相對於整體計數。ggplot2:geom_bar,計算方面的百分比
這已經討論了很多(example),建議使用geom_bar(aes(y = (..count..)/sum(..count..)))
。這不適用於facet(即會給出總計數)。有人提出了更好的解決方案, 改爲使用。
這似乎是工作,如果x
是數字,但如果x
是字符:所有的酒吧都在100%!爲什麼?難道我做錯了什麼?謝謝!
library(tidyverse)
df <- data_frame(val_num = c(rep(1, 60), rep(2, 40), rep(1, 30), rep(2, 70)),
val_cat = ifelse(val_num==1, "cat", "mouse"),
group=rep(c("A", "B"), each=100))
#works with numeric
ggplot(df) + stat_count(mapping = aes(x=val_num, y=..prop..)) + facet_grid(group~.)
# does not work?
ggplot(df) + stat_count(mapping = aes(x=val_cat, y=..prop..)) + facet_grid(group~.)
如果您的x軸是類別,您基本上會問「哪些貓是貓的百分比以及哪個百分比的小鼠是老鼠?」 – lebelinoz
我認爲這個問題是在小組/面A內,貓(或值1)與小鼠(值2)的比例是多少。對於B組也一樣,不是嗎?但是,是的,也許我的問題是不適當的?我仍然不明白爲什麼數字而不是字符的行爲是不同的? – Matifou