87 votes

Comment ajouter une étiquette générale aux facettes dans ggplot2?

J'ai souvent des valeurs numériques pour la recherche à facettes. Je souhaite fournir des informations suffisantes pour interpréter ces facettage des valeurs dans un régime de titre, similaire à l'axe des titres. L'étiqueteuse options de répéter inutilement le texte et sont inutilisables pour plus variable titres.

Toutes les suggestions?

La valeur par défaut:

test<-data.frame(x=1:20, y=21:40, facet.a=rep(c(1,2),10), facet.b=rep(c(1,2), each=20))
qplot(data=test, x=x, y=y, facets=facet.b~facet.a)

enter image description here

Ce que j'aimerais:

enter image description here

Le mieux que je puisse faire dans ggplot:

qplot(data=test, x=x, y=y)+facet_grid(facet.b~facet.a, labeller=label_both)

enter image description here

Comme indiqué par @Hendy, similaires à: ajouter un axe y secondaire à ggplot2 parcelles de la rendre parfaite

49voto

kohske Points 30437

Comme le dernier utilise en interne, il est assez facile de modifier un chiffre :

enter image description here

Bien sûr, vous pouvez écrire une fonction qui ajoute automatiquement les étiquettes de bande. La prochaine version de `` peut avoir cette fonctionnalité, ne sais pas si.

1voto

Shannon Hodges Points 53

En plus de la méthode décrite par kohske, vous pouvez ajouter une bordure aux cases ajoutées en modifiant

 col=NA
 

à

 col=gray(0.5), linetype=1
 

Aussi, changer

 fill=gray(0.5)
 

pour

 fill=grey(0.8)
 

et

 gp=gpar(col=gray(1))
 

à

 gp=gpar(col=gray(0))
 

Si vous voulez que les nouvelles barres correspondent aux étiquettes des facettes

c'est à dire

 z <- gtable_add_grob(z, 
      list(rectGrob(gp = gpar(col = gray(0.5), linetype=1, fill = gray(0.8))),
      textGrob("Variable 1", rot = -90, gp = gpar(col = gray(0)))),
      4, 8, 6, name = paste(runif(2)))
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X