geom_text comment positionner le texte sur la barre que je veux?
Je voudrais ajuster le texte sur la barplot.
J'ai essayé d'ajuster hjust/vjust à s'afficher comme je l'aime, mais il semble qu'il ne fonctionne pas correctement.
ggplot(data) +
geom_bar(aes(name, count,
fill = week), stat='identity', position = 'dodge') +
geom_text(aes(name,count,
label=count),hjust=0.5, vjust=3, size=2,
position = position_dodge(width = 1)) +
coord_flip()
Je voudrais donc le nombre de situer sur chaque barre, au milieu, sur le côté droit de sorte qu'il est lisible sans qu'elles se chevauchent comme la dernière des parties.
Vous avez besoin d'inclure suffisamment de données pour faire de votre exemple reproductible.
OriginalL'auteur tmhs | 2016-10-24
Vous devez vous connecter pour publier un commentaire.
Edit:
La solution plus facile à obtenir
hjust
/vjust
à se comporter de manière intelligente consiste à ajouter legroup
esthétique àgeom_text
et puishjust
&position
ajuster pour legroup
automatiquement.1. Orientation Verticale
Cela donne:
2. Orientation Horizontale
Cela donne:
Ce n'est pas forcément la manière la plus générale pour ce faire, mais vous pouvez avoir un
fill
dépendantehjust
(ouvjust
, selon l'orientation) de la variable. Il n'est pas tout à fait clair pour moi comment faire pour sélectionner la valeur du paramètre de réglage, et actuellement c'est basé sur ce semble droit. Peut-être quelqu'un d'autre peut vous suggérer une façon plus générale de la cueillette de la valeur de ce paramètre.1. Orientation Verticale
Voici à quoi ça ressemble:
2. Orientation Horizontale
Voici à quoi ça ressemble:
Avez-vous de mettre à jour les données, en utilisant le code que j'ai donné? Vous aurez besoin de créer une nouvelle variable dans votre ensemble de données appelé
vjust
/hjust
qui contient lefill
variable dépendante de la valeur de réglage. Après avoir dit tout cela, qui serait nécessaire pour cette version de la solution, mais je vais mettre à jour la solution de sorte qu'il devient beaucoup plus facile de le faire.Merci beaucoup! J'ai vérifié le vjust/hjust après vos commentaires, et je me demandais comment l'automatiser! Le groupement option est vraiment intelligente et efficace je pense! Je vous remercie beaucoup pour votre aide!
OriginalL'auteur tchakravarty
La
position_dodge()
déclaration prend un paramètre de largeur. Pour s'assurer que le texte est centré à la fin de l'bars (c'est à dire, l'esquivant la largeur des barres et le texte à l'identique), donner le même paramètre de largeur de laposition_dodge()
de la déclaration dans lesgeom_bar
et dansgeom_text
.Il y a aussi un paramètre de largeur pour
geom_bar
, c'est la largeur des barres. Si vous voulez les barres de bout à bout les uns contre les autres au sein de chaquename
, faire de la largeur de la barre de la même que la esquivant largeur; si vous voulez un petit écart entre les barreaux, faire de la largeur de la barre un peu moins de la esquivant largeur.Si vous utilisez l'esthétique globale, vous n'aurez pas besoin d'un
group
esthétique (cependant, en utilisant uniquement l'esthétique locale, vous aurez besoin d'un groupe esthétique pourgeom_text
).hjust = -0.5
sera la position de la étiquettes de texte juste au-delà de la fin de l'bars;hjust = 1.5
les positions à l'intérieur de la fin de l'bars.OriginalL'auteur Sandy Muspratt