我正在尝试使用ggplot2在比例条形图中显示数据点的绝对值。
这是代码:
mtcars_gear_by_make <- mtcars %>%
tibble::rownames_to_column(var = "car") %>%
tidyr::separate(car, c("make", "model"), sep = "\\s", extra = "merge") %>%
dplyr::filter(make == "Merc" | make == "Toyota") %>%
dplyr::group_by(make, gear) %>%
dplyr::summarize(n_model = n())
这是代码创建的小标题:
# Groups: make [2]
make gear n_model
<chr> <dbl> <int>
1 Merc 3 3
2 Merc 4 4
3 Toyota 3 1
4 Toyota 4 1
我使用以下代码生成比例条形图:
ggplot(mtcars_gear_by_make,
aes(x = make, y = n_model, fill = gear)) +
geom_col(position = "fill")
有没有一种方法可以在条形图中添加标签,以显示Merc
具有3个齿轮3的模型和4个齿轮4的模型,以及Toyota
1个带齿轮3的模型和1个带齿轮4的模型?
谢谢!
尝试此操作,您必须创建位置,p
因为您在y轴上以比例样式显示,然后在中使用它geom_text()
(我修改了代码以对其进行计算):
library(tidyverse)
mtcars_gear_by_make <- mtcars %>%
tibble::rownames_to_column(var = "car") %>%
tidyr::separate(car, c("make", "model"), sep = "\\s", extra = "merge") %>%
dplyr::filter(make == "Merc" | make == "Toyota") %>%
dplyr::group_by(make, gear) %>%
dplyr::summarize(n_model = n()) %>%
dplyr::mutate(p=n_model/sum(n_model))
ggplot(mtcars_gear_by_make,
aes(x = make, y = n_model, fill = gear,label=n_model)) +
geom_col(position = "fill")+
geom_text(aes(y=p),position = position_stack(vjust = .5),color='white',fontface='bold')
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句