J'ai essayé de rendre le titre explicite, mais voici les données d'abord:
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")))
Et j'aimerais créer un barplot esquivé, faire le coord_flip
et mettre des étiquettes de texte à l'intérieur des barres:
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()
vous pouvez voir la sortie ici .
Je pense que je demande quelque chose d'insignifiant. Je veux que les étiquettes de texte «suivent» les barres empilées. Les étiquettes sont correctement placées sur l'axe y, mais comment les positionner correctement sur l'axe x?
Réponses:
c'est ce que tu veux?
La clé utilise
position = position_dodge(width = 1)
au lieu deposition = "dodge"
, qui est juste un raccourci sans aucun paramètre.Dans
ggplot2_2.0.0
vous trouverez plusieurs exemples?geom_text
sur la façon de se positionnergeom_text
sur des barres esquivées ou empilées (le morceau de code nommé "# Aligning labels and bars"
). Le Q&A Quel est l'argument width dans position_dodge? Fournit une description plus approfondie du sujet.la source
fill = ustanova
legeom_text
calque, ce qui est logique, surtout lorsque vous avez de nombreuses barres horizontales (peut-être seulement nécessaire pour 3+ barres par x) et que le nombre de sauts doit être le même pour le texte que pour les barres .