J'essaie de gérer de très longues étiquettes pour une légende dans un graphique à barres (voir l'image incluse et le code que j'ai utilisé pour la produire. Je dois les décomposer en plusieurs (lignes de) lignes (2 ou 3), autres sage, l'image sera trop large. Une aide serait très utile. En fait, je soupçonne également que mon code n'est pas aussi concis qu'il devrait l'être, mais au moins il fonctionne (mais n'hésitez pas à changer)
glimpse(df)
Observations: 301
Variables: 3
$ V12n <int> 1, 4, 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1...
$ V12 <fctr> De verwijzer neemt contact op om na te gaa...
$ METING.f <fctr> Meting 0, Meting 0, Meting 0, Meting 0, Me...
p = ggplot(df, aes(x = V12n, fill = V12)) +
geom_bar(aes(y = (..count..)/tapply(..count..,..PANEL..,sum)
[..PANEL..])) +
scale_y_continuous(labels = scales::percent) +
geom_text(aes(y = ((..count..)/sum(..count..)),
label = scales::percent((..count..)/tapply(..count..,..PANEL..,sum)[..PANEL..])),
stat = "count", vjust = -0.25) +
facet_grid(.~ METING.f) +
labs(title = " ",
x = "Vraag 12",
y = "Percentage") +
theme(axis.text.x = element_blank(),
axis.ticks.x=element_blank()) +
scale_fill_manual(values = c("greenyellow", "green4", "darkorange1", "red"),
name = "Zijn er afspraken gemaakt over het overdragen van de verantwoordelijkheid naar de volgende zorgverlener?\n")
p
Vous pouvez utiliser str_wrap
pour un encapsulage automatique des longues chaînes ou vous pouvez effectuer des sauts de code en ajoutant \n
(le caractère de saut de ligne) à une chaîne. Pour ajouter de l'espace entre les touches de légende, vous pouvez utiliser le legend.key.height
élément de thème. Voici un exemple avec le cadre de données iris
intégré:
library(stringr)
library(tidyverse)
# Create long labels to be wrapped
iris$Species = paste(iris$Species,
"random text to make the labels much much longer than the original labels")
ggplot(iris, aes(Sepal.Length, Sepal.Width, colour=str_wrap(Species,20))) +
geom_point() +
labs(colour="Long title shortened\nwith wrapping") +
theme(legend.key.height=unit(2, "cm"))