R permet de combiner facilement plusieurs graphiques en un seul, en utilisant les fonctions thepar( ) ou layout( ).
Avec la fonction par( ), vous pouvez inclure l'option mfrow=c(nrows, ncols) pour créer une matrice de tracés nrows x ncols qui sont remplis par ligne. mfcol=c(nrows, ncols) remplit la matrice par colonne.
# 4 figures arranged in2 rows and 2 columns
attach(mtcars)par(mfrow=c(2,2))plot(wt,mpg, main="Scatterplot of wt vs. mpg")plot(wt,disp, main="Scatterplot of wt vs disp")hist(wt, main="Histogram of wt")boxplot(wt, main="Boxplot of wt")Propulsé par
# 3 figures arranged in3 rows and 1 column
attach(mtcars)par(mfrow=c(3,1))hist(wt)hist(mpg)hist(disp)Propulsé par
La fonction layout( ) se présente sous la forme layout(mat) où mat est un objet matriciel spécifiant l'emplacement des N figures à tracer.
# One figure in row 1 and two figures in row 2attach(mtcars)layout(matrix(c(1,1,2,3),2,2, byrow =TRUE))hist(wt)hist(mpg)hist(disp)Propulsé par
En option, vous pouvez inclure des options widths= et heights= dans la fonction layout( ) pour contrôler plus précisément la taille de chaque figure. Ces options ont la forme suivante :
widths= un vecteur de valeurs pour la largeur des colonnes
heights= un vecteur de valeurs pour les hauteurs des lignes
Les largeurs relatives sont spécifiées par des valeurs numériques. Les largeurs absolues (en centimètres) sont spécifiées avec la fonction lcm().
# One figure in row 1 and two figures in row 2
# row 1 is 1/3 the height of row 2
# column 2 is 1/4 the width of the column 1attach(mtcars)layout(matrix(c(1,1,2,3),2,2, byrow =TRUE),
widths=c(3,1), heights=c(1,2))hist(wt)hist(mpg)hist(disp)Propulsé par
Voir help(layout) pour plus de détails.
Création d'un arrangement de figures avec un contrôle précis
Dans l'exemple suivant, deux diagrammes en boîte sont ajoutés au nuage de points pour créer un graphique amélioré.
# Add boxplots to a scatterplot
par(fig=c(0,0.8,0,0.8),new=TRUE)plot(mtcars$wt, mtcars$mpg, xlab="Car Weight",
ylab="Miles Per Gallon")par(fig=c(0,0.8,0.55,1),new=TRUE)boxplot(mtcars$wt, horizontal=TRUE, axes=FALSE)par(fig=c(0.65,1,0,0.8),new=TRUE)boxplot(mtcars$mpg, axes=FALSE)mtext("Enhanced Scatterplot", side=3, outer=TRUE, line=-3)Propulsé par
Pour comprendre ce graphique, considérez que la zone complète du graphique va de (0,0) dans le coin inférieur gauche à (1,1) dans le coin supérieur droit. Le format du paramètre fig= est un vecteur numérique de la forme c(x1, x2, y1, y2). Le premier site fig= établit un nuage de points allant de 0 à 0,8 sur l'axe des x et de 0 à 0,8 sur l'axe des y. Le diagramme en boîte du haut va de 0 à 0,8 sur l'axe des x et de 0,55 à 1 sur l'axe des y. J'ai choisi 0,55 plutôt que 0,8 pour que la figure du haut soit plus proche du diagramme de dispersion. Le diagramme en boîte de droite va de 0,65 à 1 sur l'axe des x et de 0 à 0,8 sur l'axe des y. Là encore, j'ai choisi une valeur qui rapproche le diagramme de droite du diagramme de dispersion. Vous devez expérimenter pour trouver la bonne solution.
fig= démarre une nouvelle parcelle, donc pour ajouter à une parcelle existante, utilisez new=TRUE.
Vous pouvez utiliser cette fonction pour combiner plusieurs tracés dans n'importe quelle disposition en un seul graphique.
R permet de combiner facilement plusieurs graphiques en un seul, en utilisant les fonctions
thepar( )oulayout( ).Avec la fonction
par( ), vous pouvez inclure l'optionmfrow=c(nrows, ncols)pour créer une matrice de tracés nrows x ncols qui sont remplis par ligne.mfcol=c(nrows, ncols)remplit la matrice par colonne.La fonction
layout( )se présente sous la formelayout(mat)oùmatest un objet matriciel spécifiant l'emplacement des N figures à tracer.En option, vous pouvez inclure des options widths= et heights= dans la fonction
layout( )pour contrôler plus précisément la taille de chaque figure. Ces options ont la forme suivante :Les largeurs relatives sont spécifiées par des valeurs numériques. Les largeurs absolues (en centimètres) sont spécifiées avec la fonction
lcm().Voir
help(layout)pour plus de détails.Création d'un arrangement de figures avec un contrôle précis
Dans l'exemple suivant, deux diagrammes en boîte sont ajoutés au nuage de points pour créer un graphique amélioré.
Pour comprendre ce graphique, considérez que la zone complète du graphique va de (0,0) dans le coin inférieur gauche à (1,1) dans le coin supérieur droit. Le format du paramètre
fig=est un vecteur numérique de la forme c(x1, x2, y1, y2). Le premier sitefig=établit un nuage de points allant de 0 à 0,8 sur l'axe des x et de 0 à 0,8 sur l'axe des y. Le diagramme en boîte du haut va de 0 à 0,8 sur l'axe des x et de 0,55 à 1 sur l'axe des y. J'ai choisi 0,55 plutôt que 0,8 pour que la figure du haut soit plus proche du diagramme de dispersion. Le diagramme en boîte de droite va de 0,65 à 1 sur l'axe des x et de 0 à 0,8 sur l'axe des y. Là encore, j'ai choisi une valeur qui rapproche le diagramme de droite du diagramme de dispersion. Vous devez expérimenter pour trouver la bonne solution.fig=démarre une nouvelle parcelle, donc pour ajouter à une parcelle existante, utiliseznew=TRUE.Vous pouvez utiliser cette fonction pour combiner plusieurs tracés dans n'importe quelle disposition en un seul graphique.
Pratiquer
Essayez gratuitement le premier chapitre de ce cours interactif sur la visualisation de données, qui traite de la combinaison de graphiques.
Ce contenu est extrait de statmethods.net.