web-dev-qa-db-fra.com

Quelle est la différence entre facet_wrap () et facet_grid () dans ggplot2?

J'ai lu la documentation ggplot2 Pour les deux fonctions. Je me demandais quelles étaient les différences et quelle serait la bonne situation pour utiliser chaque fonction (facet_wrap() et facet_grid()).

library(ggplot2)

p <- qplot(displ, hwy, data = mpg)
p + facet_wrap(~ cyl)

p + facet_grid(~ cyl)

Je fournis ce petit exemple pour servir de point de départ. La différence semble être que le wrap rend les parcelles plus autonomes et que la grille en fait un.

59
marbel

La réponse ci-dessous fait référence au cas où vous avez 2 arguments dans facet_grid() ou facet_wrap().

facet_grid(x ~ y) affichera les tracés x*y même si certains tracés sont vides. Ex:

library(ggplot2)
g <- ggplot(mpg, aes(displ, hwy))

Il existe 4 valeurs de classe cyl et 7 valeurs distinctes.

g + geom_point(alpha=1/3) + facet_grid(cyl~class)

Ce qui précède affiche 4 * 7 = 28 tracés, même si certains sont vides (certaines classes n’ayant pas de valeurs de cylindre correspondantes, comme les lignes avec class = "taille moyenne" n’a pas de valeur correspondante cyl = "5") facet_wrap(x ~ y), en revanche, affiche uniquement les tracés ayant des valeurs réelles.

g + geom_point(alpha=1/3) + facet_wrap(cyl~class)

Il y a actuellement 19 parcelles affichées, une pour chaque combinaison de cyl et de classe.

41
Abhijeet Sharma

facet_wrap(...) chaînes ensemble ggplots dans différents cadres (facettes) basés sur une seule variable. facet_grid(...) peut prendre deux variables:

p + facet_grid(cyl~class)

Vous pouvez également utiliser une troisième variable pour regrouper chaque facette:

qplot(displ, hwy, data=mpg,color=factor(year)) + facet_grid(cyl~class)

montre l'amélioration (ou l'absence d'amélioration) du kilométrage en route par rapport au déplacement de # cylindres et de classe.

21
jlhoward

Pour les tracés à variable unique, vous pouvez utiliser facet_grid() ou facet_wrap().

facet_wrap(~variable) renverra une matrice symétrique de graphiques pour le nombre de niveaux de variable.

facet_grid(.~variable) retournera des facettes égales aux niveaux de variable distribués horizontalement.

facet_grid(variable~.) retournera des facettes égales aux niveaux de variable distribués verticalement.

5
Chris Baskerville