归一化条形图
Normalized bar graph
我有一个数据框:
df<-data.frame(Pet=rep(c("Dog", "Cat", "Bird"), c(5,10,15)), Gen=rep(c("M", "F", "M", "F", "M", "F"), c(3,5,12,5,3,2)))
当我可视化每只动物的 male/female 频率时,我得到了这张图:
ggplot(df, aes(Pet, group=Gen, fill=Gen)) + geom_bar(position="dodge", width=.5)
我如何制作一个图表,其中女性的条形图具有相同的高度,而男性的条形图具有相对于相应女性条形图的相对高度?
像这样:
一个简单的解决方法是先规范化数据,然后绘制:
t = table(df)
as.data.frame.table(t/t[,'F']) %>%
ggplot(aes(x=Pet, y=Freq, group=Gen, fill=Gen)) +
geom_bar(position="dodge", width=.5, stat="identity")
我有一个数据框:
df<-data.frame(Pet=rep(c("Dog", "Cat", "Bird"), c(5,10,15)), Gen=rep(c("M", "F", "M", "F", "M", "F"), c(3,5,12,5,3,2)))
当我可视化每只动物的 male/female 频率时,我得到了这张图:
ggplot(df, aes(Pet, group=Gen, fill=Gen)) + geom_bar(position="dodge", width=.5)
我如何制作一个图表,其中女性的条形图具有相同的高度,而男性的条形图具有相对于相应女性条形图的相对高度?
像这样:
一个简单的解决方法是先规范化数据,然后绘制:
t = table(df)
as.data.frame.table(t/t[,'F']) %>%
ggplot(aes(x=Pet, y=Freq, group=Gen, fill=Gen)) +
geom_bar(position="dodge", width=.5, stat="identity")