Saltar al contenido principal
Documentos
Gestión de datos en RGráficos en RR DocumentaciónInterfaz REstadística en RIntroducción de datos en R

Combinar gráficos en R

R facilita la combinación de varios gráficos en un gráfico global, utilizando las funciones thepar( ) o layout( ).

Con la función par( ), puedes incluir la opción mfrow=c(nrowsncols) para crear una matriz de tramas n filas x n columnas que se rellena por filas. mfcol=c(nrowsncols) rellena la matriz por columnas.

# 4 figures arranged in 2 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")

Disposición 1

# 3 figures arranged in 3 rows and 1 column
attach(mtcars)
par(mfrow=c(3,1))
hist(wt)
hist(mpg)
hist(disp)

Disposición 2

La función layout( ) tiene la forma layout(mat) donde mat es un objeto matriz que especifica la ubicación de las N figuras a trazar.

# One figure in row 1 and two figures in row 2
attach(mtcars)
layout(matrix(c(1,1,2,3), 2, 2, byrow = TRUE))
hist(wt)
hist(mpg)
hist(disp)

Disposición 3

Opcionalmente, puedes incluir las opciones anchura= y altura= en la función layout( ) para controlar el tamaño de cada figura con mayor precisión. Estas opciones tienen la forma

  • anchuras= un vector de valores para las anchuras de las columnas
  • alturas= un vector de valores para las alturas de las filas

Las anchuras relativas se especifican con valores numéricos. Las anchuras absolutas (en centímetros) se especifican con la función 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 1
attach(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)

Layout3a 689x689

Consulta help(layout) para más detalles.

Crear un arreglo de figuras con control fino

En el siguiente ejemplo, se añaden dos gráficos de caja a scatterplot para crear un gráfico mejorado.

# 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)

Disposición 4 Gráficos avanzados

Para entender este gráfico, piensa que el área completa del gráfico va desde (0,0) en la esquina inferior izquierda hasta (1,1) en la esquina superior derecha. El formato del parámetro fig= es un vector numérico de la forma c(x1, x2, y1, y2). El primer fig= establece el gráfico de dispersión que va de 0 a 0,8 en el eje x y de 0 a 0,8 en el eje y. El boxplot superior va de 0 a 0,8 en el eje x y de 0,55 a 1 en el eje y. He elegido 0,55 en lugar de 0,8 para que la figura superior se acerque más al gráfico de dispersión. El boxplot de la derecha va de 0,65 a 1 en el eje x y de 0 a 0,8 en el eje y. De nuevo, elegí un valor para acercar el diagrama de caja de la derecha al diagrama de dispersión. Tienes que experimentar para conseguirlo.

fig= inicia una nueva parcela, así que para añadirla a una parcela existente utiliza new=TRUE.

Puedes utilizarlo para combinar varios gráficos en cualquier disposición en un solo gráfico.

Practicar

Prueba gratis el primer capítulo de este curso interactivo de visualización de datos, que trata sobre la combinación de gráficos.

Este contenido ha sido extraído de statmethods.net.

Aprende lo esencial de R

Domina los fundamentos del análisis de datos en R, incluyendo vectores, listas y marcos de datos, y practica R con conjuntos de datos reales.
Empieza a aprender R gratis