Coloca geom_text en barra de barras esquivada

Intenté que el título se explicara por sí mismo, pero aquí va, primero, los datos:

dtf <- structure(list(variable = structure(c(1L, 1L, 2L, 2L, 3L, 3L, 4L, 4L, 5L, 5L), .Label = c("vma", "vla", "ia", "fma", "fla"), class = "factor"), ustanova = structure(c(1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L), .Label = c("srednja škola", "fakultet"), class = "factor"), `(all)` = c(42.9542857142857, 38.7803203661327, 37.8996138996139, 33.7672811059908, 29.591439688716, 26.1890660592255, 27.9557692307692, 23.9426605504587, 33.2200772200772, 26.9493087557604)), .Names = c("variable", "ustanova", "(all)"), row.names = c(NA, 10L), class = c("cast_df", "data.frame"), idvars = c("variable", "ustanova"), rdimnames = list( structure(list(variable = structure(c(1L, 1L, 2L, 2L, 3L, 3L, 4L, 4L, 5L, 5L), .Label = c("vma", "vla", "ia", "fma", "fla"), class = "factor"), ustanova = structure(c(1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L), .Label = c("srednja škola", "fakultet"), class = "factor")), .Names = c("variable", "ustanova" ), row.names = c("vma_srednja škola", "vma_fakultet", "vla_srednja škola", "vla_fakultet", "ia_srednja škola", "ia_fakultet", "fma_srednja škola", "fma_fakultet", "fla_srednja škola", "fla_fakultet"), class = "data.frame"), structure(list(value = structure(1L, .Label = "(all)", class = "factor")), .Names = "value", row.names = "(all)", class = "data.frame"))) 

Y me gustaría crear una barra de barras esquivada, hacer el coord_flip y poner algunas tags de texto dentro de las barras:

 ggplot(bar) + geom_bar(aes(variable, `(all)`, fill = ustanova), position = "dodge") + geom_text(aes(variable, `(all)`, label = sprintf("%2.1f", `(all)`)), position = "dodge") + coord_flip() 

usted puede ver la salida aquí .

enter image description here

Creo que estoy pidiendo algo trivial. Quiero que las tags de texto “sigan” las barras astackdas. Las tags se colocan correctamente en el eje y, pero ¿cómo colocarlas correctamente en el eje x?

¿Es esto lo que quieres?

 ggplot(bar) + geom_bar(aes(variable, `(all)`, fill = ustanova), position = "dodge") + geom_text(aes(variable, `(all)`, label = sprintf("%2.1f", `(all)`)), position = position_dodge(width = 1)) + coord_flip() 

La clave es usar position = position_dodge(width = 1) lugar de position = "dodge" , que es solo un atajo sin ningún parámetro.

enter image description here


En ggplot2_2.0.0 , encontrará varios ejemplos en ?geom_text sobre cómo posicionar geom_text en barras esquivadas o astackdas (el fragmento de código denominado ” # Aligning labels and bars" ). Preguntas y respuestas ¿Cuál es el argumento de ancho en position_dodge? proporciona una descripción más completa del tema.

    Intereting Posts