5 Función par

En este capítulo se presentan las posibilidades que ofrece la función par para la elaboración de gráficos. La función par tiene 72 parámetros y a continuación se muestran.

par(xlog, ylog, adj, ann, ask, bg, bty, cex, cex.axis, cex.lab,
    cex.main, cex.sub, cin, col, col.axis, col.lab, col.main,
    col.sub, cra, crt, csi, cxy, din, err, family, fg, fig, fin,
    font, font.axis, font.lab, font.main, font.sub, lab, las, 
    lend, lheight, ljoin, lmitre, lty, lwd, mai, mar, mex, mfcol,
    mfg, mfrow, mgp, mkh, new, oma, omd, omi, page, pch, pin, 
    plt, ps, pty, smo, srt, tck, tcl, usr, xaxp, xaxs, xaxt, xpd, 
    yaxp, yaxs, yaxt, ylbias)

Para conocer los valores que tienen por defecto cada uno de estos parámetros se puede utilizar el siguiente código.

par()

Al ejecutar el código anterior se obtendrá una lista con 72 objetos en la cual se tendrán los valores que cada uno de los parámetros asume inicialmente en una sesión de R. Luego de modificar uno o alguno de los parámetros de la función par, todos los gráficos que se construyan de ahí en adelante estarán afectados por el cambio realizado.

Una buena práctica para retornar a los valores iniciales del objeto par() es cerrar la ventana gráfica.

La utilidad de cada uno de los parámetros para personalizar los gráficos se mostrará por medio de ejemplos.

5.1 Parámetro ann

Este parámetro sirve para indicar si se quiere un gráfico con nombres en los ejes y título principal, por defecto asume el valor TRUE.

Ejemplo

Dibujar la densidad para una distribución \(\chi^2_1\) usando ann=FALSE dentro de la función par.

El código necesario para obtener la figura se muestra a continuación. Note que a pesar de haber solicitado título principal y nombres de los ejes, éstos no aparecen en el resultado final porque se usó antes par(ann=FALSE). En la Figura 5.1 se muestra el gráfico solicitado.

par(ann=FALSE)
curve(dchisq(x, df=1), col='salmon1', lwd=4,
      main='Chi cuadrada',
      xlab='x', ylab='Densidad')
Efecto del parámetro `ann`.

Figure 5.1: Efecto del parámetro ann.

La opción ann=FALSE es muy útil para gráficos sin nombres en los ejes y sin título principal. Esta opción evita el uso de xlab='', ylab='', main='' dentro de las funciones gráficas.

5.2 Parámetro adj

Este parámetro sirve para modificar la justificación del texto cuando se usan las funciones text, mtext y title. Su valor por defecto es 0.5 que indica que el texto debe quedar centrado en las coordenadas x e y indicadas, un valor de 0 significa justificación a izquierda mientras que 1 significa justificación a derecha.

Ejemplo

Dibujar un gráfico vacío, ubicar las palabra hola mi mundo horizontalmente en el gráfico y explorar el efecto del parámetro adj.

El código necesario para obtener lo solicitado se muestra a continuación. Se agregaron líneas a trazos de color azul para indicar el sitio exacto donde se quería el texto. Observando la Figura 5.2 se nota claramente que cuando adj=0.5 la palabra queda centrada mientras que con otros valores cambia la justificación del texto.

plot(NULL, xlim=c(0, 0.6), ylim=c(0, 1))

par(adj=0)  # Para justificar a izquierda
text(x=0.1, y=0.6, 'hola', cex=3)

par(adj=0.5)  # Para justificar centrado
text(x=0.3, y=0.6, 'mi', cex=3)

par(adj=1)  # Para justificar a derecha
text(x=0.5, y=0.6, 'mundo', cex=3)

abline(h=0.6, v=c(0.1, 0.3, 0.5),
       lty=3, col='deepskyblue3')
Efecto del parámetro `adj`.

Figure 5.2: Efecto del parámetro adj.

5.3 Parámetro bg

Este parámetro sirve para modificar el color del fondo donde se va a dibujar.

Ejemplo

Dibujar la densidad de una normal estándar usando un color verde para el fondo.

A continuación el código necesario para modficar el color del fondo. En esta página se puede encontrar una paleta de colores disponibles en R. En la Figura 5.3 se muestra el resultado, el color de fondo está por toda la ventana gráfica.

par(bg='darkseagreen1')
curve(dnorm, lwd=6, col='blue', xlim=c(-4, 4))
Efecto del parámetro `bg`.

Figure 5.3: Efecto del parámetro bg.

5.4 Parámetro mfrow

Este parámetro sirve para dividir la ventana gráfica en forma de matriz para almacenar en cada celda un gráfico diferente. La forma para modificar este parámetro es mfrow=c(nf, nc), donde nf es el número de filas y nc el número de columnas en las cuales se va a dividir la ventana gráfica.

Ejemplo

Dibujar la distribución de probabilidad para una distribución Poisson con \(\lambda=1, 3, 7, 15\).

Note que el objetivo es repetir el mismo gráfico para 4 valores diferentes del paramétro \(\lambda\), por lo tanto se escribirá una sola vez el código de interés pero se repetirá automáticamente 4 veces para cada valor de \(\lambda\). Para construir el gráfico solicitado iniciamos partiendo la ventana gráfica en una matriz de \(2 \times 2\) usando par(mfrow=c(2, 2)). Luego se construye el vector lambdas con los valores de \(\lambda\) y por último se coloca el plot de interés dentro de una sentencia for. Abajo el código utilizado.

par(mfrow=c(2, 2))

lambdas <- c(1, 3, 7, 15)

for (i in 1:4) {
  plot(dpois(x=0:30, lambda=lambdas[i]), lwd=4,
       type='h', xlab='x', ylab='Probabilidad')
  title(bquote(~ lambda == .(lambdas[i])))
} 
Efecto del parámetro `mfrow`.

Figure 5.4: Efecto del parámetro mfrow.

En la Figura 5.4 se muestra la distribución de probabilidad para cada uno de los 4 valores de \(\lambda\) en la misma figura.

La función bquote sirve para construir mensajes que sean una mezcla de texto, expresiones matemáticas y valores de un objeto.

5.5 Parámetro bty

Este parámetro sirve para modficar la caja alrededor del gráfico construído. Los posibles valores para este parámetro son: 'o' valor por defecto para obtener la caja usual; se pueden usar también los símboloes 'l', '7', 'c', 'u' o ']', el resultado será una caja con la forma del símbolo; se puede usar 'n' para suprimir la caja.

Ejemplo

Dibujar la densidad de una \(\chi^2_5\) modificando el parámetro bty de par.

A continuación el código para dibujar la misma densidad 4 veces modificando el valor para bty. En la Figura 5.5 se muestra el efecto que tienen los valores elegidos. Observe que, además de los ejes, hay una caja cuya forma depende el valor seleccionado, cuando bty='u' el resultado es una caja con esa misma forma.

par(bty='n', mfrow=c(2, 2))
curve(dchisq(x, df=5), xlim=c(0, 20))
title("Usando bty='n'")
par(bty='o')
curve(dchisq(x, df=5), xlim=c(0, 20))
title("Usando bty='o'")
par(bty='u')
curve(dchisq(x, df=5), xlim=c(0, 20))
title("Usando bty='u'")
par(bty='l')
curve(dchisq(x, df=5), xlim=c(0, 20))
title("Usando bty='l'")
Efecto del parámetro `bty`.

Figure 5.5: Efecto del parámetro bty.

5.6 Parámetro cex

Este parámetro sirve para modificar el tamaño de los símbolos, nombres de los ejes, marcas de los ejes y títulos. El valor por defecto es cex=1, valores mayores a uno generan gráficos con símbolos, títulos y marcas grandes, incluso desproporcionados; valores pequeños de este parámetro permiten obtener mejores figuras. A continuación un ejemplo para ver el efecto que tiene este parámetro sobre las figuras obtenidas.

Ejemplo

Hacer un gráfico de dispersión sencillo para explorar el efecto del parámetro cex.

Se construirá un gráfico de dispersión dos veces, en la primera con parámetro cex=1 y en la segunda ocasión usando cex=0.6. Abajo el código utilizado. En el pánel izquierdo de la Figura 5.6 está el diagrama de dispersión obtenido con cex=1.4 mientras que el de la derecha fue obtenido con cex=0.6. Observe cómo se modificaron los nombres de los ejes, título principal, marcas de los ejes y tamaño del símbolo.

x <- -3:3
par(mfrow=c(1, 2), cex=1.4)
plot(x=x, y=x, main='Usando \n cex=1.4')

par(cex=0.6)
plot(x=x, y=x, main='Usando \n cex=0.6')
Efecto del parámetro `cex`.

Figure 5.6: Efecto del parámetro cex.

El parámetro cex tiene un efecto importante en las figuras, se recomienda al usuario que cada vez que construya una figura explore diferentes opciones para obtener una figura que exprese la esencia de lo que desea comunicar.

5.7 Parámetros cex.axis, cex.lab, cex.main y cex.sub

Los parámetros cex.axis, cex.lab, cex.main y cex.sub sirven para modificar el tamaño de las marcas en los ejes, el tamaño de los nombres de los ejes, el tamaño del título principal y el tamaño del subtítulo respectivamente. El parámetro cex explicado en la sección anterior, modifica el tamaño de los anteriores elementos simultáneamente mientras que los parámetros explicados en esta sección modifican cada uno de los elementos por aparte.

Ejemplo

Hacer un gráfico cualquiera y modificar los parámetros cex.axis, cex.lab, cex.main y cex.sub de la función par con el objetivo de ver el efecto que ellos tiene sobre el gráfico.

A continuación se construye un gráfico simple y se modifican todos los paramétros cex.algo para ver el efecto que ellos tienen sobre el gráfico resultante, abajo el código usado.

En la Figura 5.7 se muestra el resultado. Observe que las marcas y números en los ejes quedaron grandes debido a que se usó cex.axis=1.8, los nombres que identifican los ejes casi no se ven porque se usó cex.lab=0.3. El título principal quedó muy pequeño debido a que cex.main=0.7 mientras que el subtítulo quedó demasiado grande porque se usó cex.sub=2. Este ejemplo muestra que el usuario tiene todo el control para construir gráficos personalizados en R.

x <- -3:3
par(cex.axis=1.8, cex.lab=0.3, cex.main=0.7, cex.sub=2.0)
plot(x=x, y=x,
     xlab='Valores de x', ylab='Valores de y',
     main='Título principal',
     sub='Subtítulo')
Efecto de los parámetros `cex.axis`, `cex.lab`, `cex.main` y `cex.sub`.

Figure 5.7: Efecto de los parámetros cex.axis, cex.lab, cex.main y cex.sub.

5.8 Parámetro col, col.axis, col.lab, col.main y col.sub

Estos parámetros sirven para definir el color a usar en los ejes, en los nombres de los ejes, en el título y en el subtítulo.

Ejemplo

Hacer un gráfico cualquiera y modificar los parámetros col, col.axis, col.lab, col.main y col.sub de la función par con el objetivo de ver el efecto que ellos tiene sobre el gráfico.

A continuación se construye un gráfico simple y se modifican todos los paramétros para ver el efecto que ellos tienen sobre el gráfico resultante, abajo el código usado.

par(col='blue', col.axis='red', col.lab='orange',
    col.main='darkgreen', col.sub='purple', bty='n')
plot(1:10, pch=20, cex=2, las=1,
     main='Título', xlab='Nombre eje X',
     ylab='Nombre eje Y', sub='Subtítulo')
Efecto de los parámetros `col`, `col.axis`, `col.lab`, `col.main` y `col.sub`.

Figure 5.8: Efecto de los parámetros col, col.axis, col.lab, col.main y col.sub.

En la Figura 5.8 se muestra el efecto de los parámetros col, col.axis, col.lab, col.main y col.sub de la función par.