Plot en R

- Función plot en R
- Ventanas gráficas
- Tipos de plot en R
- El argumento pch
- Título del plot en R
- Subtítulo del gráfico
- Ejes de los plots en R
- Fuente de texto de un plot en R
- Colorear plots en R
- Añadir líneas o curvas a un gráfico en R
- Añadir texto a un plot en R
- Cambiar el tipo de caja con el argumento bty
- Añadir una leyenda a un plot en R
La función gráfica más básica en R es la función plot
. Esta función tiene múltiples argumentos para configurar el gráfico final, que permiten agregar un título, cambiar las etiquetas de los ejes, personalizar colores, cambiar tipos de línea, etc. En este tutorial aprenderás cómo hacer un plot en R y cómo personalizar totalmente el gráfico resultante.
Función plot en R
La función plot
en R permite crear un gráfico pasando dos vectores (de la misma longitud), un data frame, una matriz o incluso otros objetos, dependiendo de su clase o tipo de los datos de entrada. A continuación simulamos dos variables normales aleatorias llamadas x
e y
, que usaremos en gran parte de los ejemplos.
Puedes dibujar los datos creados escribiendo:
Con la función plot
se puede crear una amplia gama de gráficos, dependiendo de los argumentos de entrada. En la siguiente tabla resumimos todas las posibilidades disponibles para la función plot
de R base.
Función y argumentos | Gráfico de salida |
---|---|
plot(x, y) |
Diagrama de dispersión de los vectores numéricos x e y |
plot(factor) | Gráfico de barras del factor |
plot(factor, y) |
Diagrama de caja del vector numérico y los niveles del factor |
plot(serie_temporal) |
Gráfico de una serie de tiempo (clase ts) |
plot(data_frame) |
Gráfico de correlación de todas las columnas del data frame (más de dos columnas) |
plot(fecha, y) | Traza un vector basado en fechas |
plot(función, inferior, superior) |
Traza la función entre el valor inferior y máximo especificado |
Si ejecutas el siguiente código, obtendrás ejemplos de los diferentes tipos de gráfico.
Cuando creas varios gráficos en R GUI (no en RStudio), el siguiente gráfico borrará el anterior. Sin embargo, puedes crear nuevas ventanas gráficas con las funciones windows
, X11
y quartz
según tu sistema operativo, para resolver este problema.
Ventanas gráficas
Al crear gráficos en R base, se abrirán en una nueva ventana. Sin embargo, es posible que necesites personalizar la altura y el ancho de la ventana, que por defecto es de 7 pulgadas. Para ese propósito, puedes utilizar los argumentos height
y width
de las siguientes funciones, dependiendo de tu sistema operativo.
Cabe destacar que en RStudio el gráfico se mostrará en el panel de gráficos, pero si utilizas la función correspondiente, el gráfico se abrirá en una nueva ventana, al igual que en R base.
Además de poder abrir y establecer el tamaño de la ventana, estas funciones se usan para evitar sobrescribir gráficos, ya que al crear uno nuevo perderás el anterior. Ten en cuenta que en RStudio puedes navegar por todas los gráficos que hayas creado en tu sesión en el panel de gráficos
También puedes limpiar la ventana gráfica en R con la función dev.off
, para borrar la ventana actual y graphics.off
para borrar todas las gráficas y restablecer la configuración gráfica predeterminada.
Nótese que la función dev.cur
cuenta el número de dispositivos gráficos disponibles actualmente.
Tipos de plot en R
Puedes personalizar el tipo de gráfico con el argumento type
. La selección del tipo dependerá de los datos que estés representando. En el siguiente bloque de código mostramos los tipos de gráficos más comunes que se pueden crear con la función plot
en R.
Tipo de plot | Descripción |
---|---|
p |
Gráfico de puntos (por defecto) |
l | Gráfico de líneas |
b |
Ambos (puntos y líneas, separados) |
o |
Ambos (líneas y por encima puntos) |
s | Gráfico de escaleras |
h | Gráfico estilo histograma |
n | Gráfico vacío |
El argumento pch
El argumento pch
permite modificar el símbolo de los puntos en el gráfico. Los símbolos principales se pueden seleccionar pasando los números 1 a 25 como parámetros. También puedes cambiar el tamaño de los símbolos con el argumento cex
y el ancho de los bordes de los símbolos (excepto los símbolos 15 a 18) con el argumento lwd
.
Además, los símbolos 21 a 25 permiten establecer el ancho del borde y también el color de fondo, con los argumentos lwd
y bg
, respectivamente.
En el siguiente bloque de código mostramos un ejemplo simple de cómo personalizar uno de estos símbolos.
Cabe mencionar que puedes usar cualquier carácter como símbolo. De hecho, algunos símbolos de caracteres pueden seleccionarse usando los números 33 a 240 como valores del argumento pch
.
Título del plot en R
Se puede agregar un título a un plot en R con el argumento main
o con la función title
.
La principal diferencia entre usar la función title
o el argumento es que los argumentos que se pasan a la función solo afectan al título.
Para cambiar la posición del título del gráfico puedes establecer el argumento adj
como un valor entre 0 (izquierda) y 1 (derecha) y el argumento line
como un valor por encima de 1.7 (valor predeterminado) para mover el título hacia arriba o un valor por debajo de 1.7 para moverlo hacia abajo. Valores negativos de line
hacen que el título se desplace hacia abajo, entrando dentro del gráfico. Nótese que si estableces estos argumentos en la función plot
, los cambios se aplicarán a todos los textos.
Título en LaTeX
Es muy común para los científicos de datos la necesidad de mostrar expresiones matemáticas en el título de los gráficos. Para ese propósito puedes usar la función expression
. Puedes buscar todas las opciones disponibles para utilizar la notación matemática similar a LaTeX con el siguiente comando de ayuda: ?plotmath
.
Sin embargo, verás que la sintaxis de la función es bastante diferente de la sintaxis de LaTeX. Si lo prefieres, puedes usar la función TeX
del paquete latex2exp
, pero ten en cuenta que esta función traduce la notación TeX a la notación de función expression
, por lo que los símbolos y la notación disponibles son los mismos en ambas funciones.
Las expresiones de LaTeX se pueden usar también en los subtítulos, las etiquetas de eje o cualquier otro texto, como textos agregados a la gráfica.
Subtítulo del gráfico
Además, puedes agregar un subtítulo a un plot en R con el argumento sub
que se mostrará debajo del gráfico. También se puede agregar un subtítulo aunque no haya título principal.
Ejes de los plots en R
En los gráficos de R puedes modificar las etiquetas de los ejes X e Y, agregar y cambiar las etiquetas de los ticks (marcas) de los ejes, la escala e incluso los límites de los ejes.
Etiquetas de los ejes X e Y
Por defecto, R usará los nombres de los vectores que pases a la función plot
como etiquetas de los ejes X e Y. Sin embargo, puedes cambiarlos con los argumentos xlab
e ylab
.
Si quieres borrar las etiquetas de los ejes, puedes establecerlas como una cadena de caracteres vacía o establecer el argumento ann
como FALSE
.
La función axis
El argumento axes
de la función plot
puede establecerse en FALSE
para evitar dibujar los ejes, por lo que, en caso de que quieras, puedas agregar solo uno de ellos con la función axis
y personalizarlo. Pasar un 1
como argumento dibujará el eje X, pasar un 2
dibujará el eje Y, pasar un 3
agregará el eje superior y un 4
el derecho.
Cambiar los ticks
También es posible cambiar los ticks de los ejes. Por una parte, el argumento at
de la función axis permite indicar los puntos en los que se van a dibujar las etiquetas.
Por otra parte, la función minor.tick
del paquete Hmisc
permite crear ticks más pequeños entre los ticks principales:
Por último, pasar un número positivo al argumento tck
de la función plot
permite añadir ticks interiores.
Eliminar etiquetas de las marcas de los ejes
Estableciendo los argumentos xaxt
o yaxt
como "n"
en la función plot
evitará trazar las etiquetas de los ejes X e Y, respectivamente.
Cambiar las etiquetas de los ticks
Las etiquetas de los ticks de los ejes se numerarán para seguir la numeración de tus datos. Sin embargo, puedes modificar estas etiquetas si es necesario con el argumento labels
de la función axis
. También deberás especificar dónde se mostrarán las etiquetas de los ticks con el argumento at
.
Rotar las etiquetas de los ejes
El argumento las
de la función plot
en R te permite rotar las etiquetas de los ejes de tus gráficos. En el siguiente bloque de código encontrarás ejemplos y la explicación de las diferentes alternativas.
Límites de los ejes
Puedes acercar o alejar el gráfico cambiando los límites de los ejes. Estos argumentos son muy útiles cuando agregas curvas a tu gráfico.
Cambiar la escala de los ejes
El argumento log
permite cambiar la escala de los ejes de un gráfico. Puedes transformar el eje X, el eje Y o ambos, de la siguiente manera:
Sin embargo, puedes estar pensando que usar la función log
es equivalente a usar el argumento, pero no lo es. Como puedes ver en el gráfico anterior, al usar el argumento log
solo se modifica la escala, no lo datos, pero la función log
sí los transformará. Fíjate en la diferencia entre los ejes del siguiente gráfico y los del anterior.
Fuente de texto de un plot en R
Tamaño de la fuente
Puedes cambiar el tamaño de fuente de un gráfico de R con los argumentos cex.main
, cex.sub
, cex.lab
y cex.axis
para cambiar el título, los subtítulos, las etiquetas de los ejes X e Y y los ticks de los ejes, respectivamente. Valores mayores mostrarán textos más grandes.
Argumento | Descripción |
---|---|
cex.main | Establece el tamaño del título |
cex.sub | Establece el tamaño del subtítulo |
cex.lab |
Establece el tamaño de las etiquetas de los ejes |
cex.axis |
Establece el tamaño de las etiquetas de los ticks de los ejes |
Estilo de las fuentes
Además, puedes cambiar el estilo de fuente de los gráficos de R con el argumento font
. Puedes establecer este argumento en 1 para texto sin formato, 2 en negrita (predeterminado), 3 en cursiva y 4 en negrita y cursiva. Este argumento no aplica al título.
También puedes especificar el estilo de cada uno de los textos del gráfico con los argumentos font.main
, font.sub
, font.axis
y font.lab
.
Ten en cuenta que, de forma predeterminada, el título de los gráficos está en negrita.
Estilo de fuente | Descripción |
---|---|
1 | Texto plano |
2 | Negrita |
3 | Cursiva |
4 | Negrita y cursiva |
Familia de las fuentes
El argumento family
permite cambiar la familia de las fuentes de los textos de los plots en R. Incluso puedes agregar más texto con otras familias de fuentes. Ten en cuenta que puedes ver la lista completa de fuentes disponibles en R con el comando names(pdfFonts())
, pero algunas de ellas pueden no estar instaladas en tu ordenador.
Una alternativa es usar el paquete extrafont
:
Colorear plots en R
En la sección sobre símbolos pch
explicamos cómo configurar el argumento col
, que permite modificar el color de los símbolos de los gráficos. En R, hay una amplia variedad de paletas de colores. Con la función colors
puedes devolver todos los colores base de R disponibles. Además, se puede usar la función grep
(una función para expresiones regulares) para devolver un vector de colores que contenga algún texto concreto.
Puedes especificar colores con su nombre en inglés ("red"
, "green"
, …), con números (1 a 8) o incluso con su referencia HEX ("#FF0000"
, "#0000FF"
, …).
También puedes modificar los colores de los textos con las funciones col.main
, col.sub
, col.lab
y col.axis
e incluso cambiar el color de la caja del gráfico con el argumento fg
.
Colorear según grupo
Si tienes variables numéricas etiquetadas por grupo, puedes dibujar las observaciones separadas por color, pasando al argumento col
la variable categórica (como factor). Los colores dependerán de los factores.
Nótese que, por defecto, los niveles de los factores están ordenados alfabéticamente, por lo que en este caso el orden del vector de colores no es el orden de los colores en el gráfico, ya que la primera fila del data frame corresponde a “coche”, que es el tercer nivel. Por lo tanto, si cambias el orden de los niveles, puedes modificar el orden de los colores.
Desde R 4.0.0 el argumento stringAsFactors
de la función data.frame
es FALSE
por defecto, por lo que deberás convertir la variable categórica a factor si quieres colorear las observaciones por grupo como en el ejemplo anterior.
Cambiar el color de fondo
Hay dos formas de cambiar el color de fondo de los gráficos en R: cambiando todo el color o cambiando el color de fondo de la caja. Para cambiar todo el color puedes usar el siguiente comando:
Sin embargo, el resultado quedará más bonito si solo se colorea la caja de un determinado color, aunque esto requiere más código. Nótese que la función plot.new
permite crear un gráfico vacío en R y que par(new = TRUE)
permite añadir un gráfico sobre otro.
Añadir líneas o curvas a un gráfico en R
Puedes agregar una línea a un diagrama en R con la función lines
. Supón que quieres agregar una línea roja a una gráfica, desde (-4, -4) a (4, 4), para ello podrías escribir:
Grosor de línea
El ancho o grosor de línea en R se puede cambiar con el argumento lwd
. Valores más grandes trazarán una línea más ancha.
Tipo de línea
Al trazar un gráfico de tipo “l”, “o”, “b”, “s”, o al agregar una nueva línea sobre un gráfico ya creado, puedes elegir entre diferentes tipos de línea en R, estableciendo el argumento lty
de 0 a 6.
Tipo | Descripción |
---|---|
0 | Sin línea |
1 | Línea sólida (por defecto) |
2 | Línea discontinua |
3 | Línea punteada |
4 | Línea discontinua con puntos |
5 | Líneas largas discontinuas |
6 | Línea discontinua con dos trazos |
Añadir texto a un plot en R
Por un lado, la función mtext
permite agregar texto a todos los lados del gráfico. Hay 12 combinaciones (3 en cada lado de la caja: alineadas a la izquierda, al centro y a la derecha). Solo necesitas cambiar los argumentos adj
y side
para obtener la combinación que necesites.
Por otro lado, la función text
permite agregar texto o fórmulas dentro del gráfico en alguna posición configurando las coordenadas. En el siguiente bloque de código se muestran algunos ejemplos de ambas funciones.
Etiquetar puntos en R
En esta sección, aprenderás a etiquetar observaciones en R. Para ello, puedes usar la función text
, indicar las coordenadas y la etiqueta de los puntos de datos en el argumento labels
. Con el argumento pos
puedes establecer la posición de la etiqueta con respecto al punto, siendo 1 debajo, 2 a la izquierda, 3 arriba y 4 a la derecha.
También puedes etiquetar puntos de datos individuales si indexas los elementos de la función text
de la siguiente manera:
Cambiar el tipo de caja con el argumento bty
El argumento bty
permite cambiar el tipo de caja de los gráficos de R. Hay diversas opciones, resumidas en la siguiente tabla:
Tipo de caja | Descripción |
---|---|
“o” | Caja entera (por defecto) |
“7” | Arriba y derecha |
“L” | Izquierda y abajo |
“U” | Izquierda, abajo y derecha |
“C” | Arriba, izquierda y abajo |
“n” | Sin caja |
La forma de los caracteres “7”, “L” y “U” representan la forma de los bordes que dibujan.
Ten en cuenta que en otros gráficos, como en el caso de los boxplots, deberás especificar el argumento bty
dentro de la función par
.
Añadir una leyenda a un plot en R
Por último, revisaremos cómo añadir una leyenda a un plot de R con la función legend
. Puedes establecer las coordenadas en las que quieres agregar la leyenda o especificar "top"
, "bottom"
, "topleft"
, "topright"
, "bottomleft"
o "bottomright"
. También puedes especificar muchos argumentos como en la función plot
. Como ejemplo, puedes cambiar el argumento bty
en la leyenda, o el color de fondo con el argumento bg
, entre otros.
Consulta el artículo específico sobre leyendas en R para aprender más sobre cómo añadir leyendas en los gráficos.