柱形图用geom_bar或者geom_col(),geom_bar用于绘制频数分布,使用stat_count统计变换,计算分组的个数,用个数映射方柱的高度。或者是变量的权重,两者其实是一个意思。
geom_bar(mapping = NULL, data = NULL, stat = "count",
position = "stack", ..., width = NULL, binwidth = NULL, na.rm = FALSE,
show.legend = NA, inherit.aes = TRUE)
geom_col以变量的值映射到方柱的高度,使用stat_identity()统计变换,意思就是原封不动的使用变量的值。
geom_col(mapping = NULL, data = NULL, position = "stack", ...,
width = NULL, na.rm = FALSE, show.legend = NA, inherit.aes = TRUE)
要反过来,需要显式调用position_stack函数。
g +
geom_bar(aes(fill = drv), position = position_stack(reverse = TRUE)) +
coord_flip() +
theme(legend.position = "top")