Intenté que el título se explicara por sí mismo, pero aquí va: los datos primero:
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 gráfica de barras esquivada, hacer coord_flip
y poner algunas etiquetas 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()
puedes ver la salida aquí .
Creo que estoy pidiendo algo trivial. Quiero que las etiquetas de texto "sigan" las barras apiladas. Las etiquetas se colocan correctamente en el eje y, pero ¿cómo colocarlas correctamente en el eje x?
Respuestas:
¿Es esto lo que quieres?
La clave está usando en
position = position_dodge(width = 1)
lugar deposition = "dodge"
, que es solo un atajo sin ningún parámetro.En
ggplot2_2.0.0
encontrará varios ejemplos?geom_text
sobre cómo posicionargeom_text
en barras esquivadas o apiladas (el fragmento de código llamado "# Aligning labels and bars"
). Las preguntas y respuestas ¿Cuál es el argumento de ancho en position_dodge? Proporciona una descripción más completa del tema.fuente
fill = ustanova
lageom_text
capa, lo que tiene sentido, especialmente cuando tiene muchas barras horizontales (tal vez solo sea necesario para más de 3 barras por x) y el número de descansos debe ser el mismo para el texto que para las barras .