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.
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.
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')
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')
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.
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])))
}
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.
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'")
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')
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')
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')
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
.