如何将 geom_label 放入 geom_bar

豪尔赫·帕雷德斯

我正在用这个代码做这个图

ggplot(c_clinicos) +
 aes(x = Condición, fill = Estado, weight = Conteo) +
 geom_bar() +
 scale_fill_manual(values = list(
 Ausente = "#FF1100", Presente = "#538FF6")) +
  labs(x = "Condición clínica", y = "Nº Personas. ", 
       title = "Distribución de la presencia por enfermedad", subtitle = "Muestra de 810 pacientes", fill = "Estado:")  +
 coord_flip() +
 theme_linedraw()

在此处输入图片说明

我想为每个条形(蓝色和红色)绘制一个小方块,告诉我有多少人以及百分比。我一直在尝试使用 geom_label 但我无法做到这一点。

我正在使用这些数据:

structure(list(Condición = c("Cianosis Aguda", "Cianosis Aguda", 
"Gassping", "Gassping", "FR mayor de 40 o menor de 6 rpm", "FR mayor de 40 o menor de 6 rpm", 
"Oliguria que no responde a volumen y uso de diuréticos", "Oliguria que no responde a volumen y uso de diuréticos", 
"Transtornos de la coagulación", "Transtornos de la coagulación", 
"Pérdida de la conciencia mayor de 12 horas", "Pérdida de la conciencia mayor de 12 horas", 
"Pérdida de la conciencia y ausencia de pulso y latidos cardíacos.", 
"Pérdida de la conciencia y ausencia de pulso y latidos cardíacos.", 
"Stroke", "Stroke", "Parálisis total o convulsiones incontrolables", 
"Parálisis total o convulsiones incontrolables", "Ictericia más preeclampsia", 
"Ictericia más preeclampsia"), Estado = c("Presente", "Ausente", 
"Presente", "Ausente", "Presente", "Ausente", "Presente", "Ausente", 
"Presente", "Ausente", "Presente", "Ausente", "Presente", "Ausente", 
"Presente", "Ausente", "Presente", "Ausente", "Presente", "Ausente"
), Conteo = c(13, 797, 0, 810, 520, 290, 314, 496, 150, 659, 
1, 809, 1, 809, 9, 801, 49, 761, 114, 696)), row.names = c(NA, 
-20L), class = c("tbl_df", "tbl", "data.frame"))

提前致谢。

罗纳克·沙阿

我们可以计算我们想要显示的标签并在geom_label.

library(dplyr)
library(ggplot2)

c_clinicos %>%
  group_by(Condición) %>%
  mutate(label = sprintf('%d \n(%.2f %%)', Conteo, prop.table(Conteo) * 100), 
         label = replace(label, Conteo == 0, '')) %>%
  ggplot() +
  aes(x = Condición, fill = Estado, y = Conteo, label = label) +
  geom_col() +
  scale_fill_manual(values = list(
    Ausente = "#FF1100", Presente = "#538FF6")) +
  labs(x = "Condición clínica", y = "Nº Personas. ", 
       title = "Distribución de la presencia por enfermedad", 
       subtitle = "Muestra de 810 pacientes", fill = "Estado:")  +
  geom_label(position=position_stack(vjust=0.5), color = 'white') + 
  coord_flip() +
  theme_linedraw()

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章