Je me demande comment je peux manipuler la taille du texte de bande dans les tracés à facettes. Ma question est similaire à ne question sur les titres de l'intrigue , mais je suis spécifiquement préoccupé par la manipulation non pas du titre de l'intrigue mais du texte qui apparaît dans les titres de facette (strip_h).
Par exemple, considérons l'ensemble de données mpg.
library(ggplot2)
qplot(hwy, cty, data = mpg) + facet_grid( . ~ manufacturer)
Le résultat sortie produit des titres de facettes qui ne tiennent pas dans la bande.
Je pense qu'il doit y avoir un moyen d'utiliser grid
pour traiter le texte de la bande. Mais je suis toujours un novice et je n'étais pas sûr de l'appendice grid
dans le livre de Hadley comment, précisément, le faire. De plus, j'avais peur que si je le faisais mal, cela briserait ma machine à laver, car je crois que toute la technologie est connectée via The Force :-(
Merci d'avance.
Vous pouvez modifier strip.text.x
(Ou strip.text.y
) En utilisant theme_text()
, par exemple
qplot(hwy, cty, data = mpg) +
facet_grid(. ~ manufacturer) +
opts(strip.text.x = theme_text(size = 8, colour = "red", angle = 90))
Mise à jour: pour la version ggplot2> 0.9.1
qplot(hwy, cty, data = mpg) +
facet_grid(. ~ manufacturer) +
theme(strip.text.x = element_text(size = 8, colour = "red", angle = 90))
De nos jours, l'utilisation de opts
et theme_text
semble obsolète. R suggère d'utiliser theme
et element_text
. Une solution à la réponse peut être trouvée ici: http://wiki.stdout.org/rcookbook/Graphs/Facets%20%28ggplot2%29/#modifying-facet-label-text
qplot(hwy, cty, data = mpg) +
facet_grid(. ~ manufacturer) +
theme(strip.text.x = element_text(size = 8, colour = "red", angle = 90))
Je suppose que dans l'exemple de mpg
changer l'angle de rotation et la taille de la police est bien, mais dans de nombreux cas, vous pourriez vous retrouver avec des variables qui ont des étiquettes assez longues, et cela peut devenir une douleur dans le cou (littéralement) pour essayer de lire de longues étiquettes pivotées.
Donc, en plus (ou en complément) des changements d'angles et de tailles, je reformate généralement les étiquettes des facteurs qui définissent le facet_grid
chaque fois qu'ils peuvent être divisés d'une manière qui a du sens.
Généralement, si j'ai un dataset$variable
avec des chaînes qui ressemblent à
c("median_something", "aggregated_average_x","error","something_else")
Je fais simplement:
reformat <– function(x,lab="\n"){ sapply(x, function(c){ paste(unlist(strsplit(as.character(c) , split="_")),collapse=lab) }) }
[il y a peut-être de meilleures définitions de reformat
mais au moins celle-ci fonctionne bien.]
dataset$variable <- factor(dataset$variable, labels=reformat(dataset$variable, lab='\n')
Et lors du facettage, toutes les étiquettes seront très lisibles:
ggplot(data=dataset, aes(x,y)) + geom_point() + facet_grid(. ~ variable)