Diagrama de dispersión en R (10 ejemplos) | Crear XYplot en Base R, ggplot2 y lattice

Se el primero en calificar

En este tutorial de programación en R , aprenderá a dibujar diagramas de dispersión .

Tabla de contenido:

Vamos a sumergirnos en:

Ejemplos de datos

Usaremos los siguientes dos vectores numéricos para los siguientes ejemplos de este tutorial de R (o RStudio):

establecer _ seed ( 42424 )                                    # Crear datos aleatorios 
x <- rnorm ( 500 ) 
y <- x + rnorm ( 500 )

Nuestros vectores contienen 500 valores cada uno y están correlacionados. ¡Ahora vamos a graficar estos datos!

Ejemplo 1: Diagrama de dispersión básico en R

Si queremos crear un diagrama de dispersión (también llamado XYplot) en Base R, debemos aplicar la función plot() como se muestra a continuación:

plot ( x, y )                                         # Diagrama de dispersión básico

Diagrama de dispersión de programación R Diagrama XY 1

Figura 1: Diagrama de dispersión con especificaciones predeterminadas en Base R.

La Figura 1 muestra un diagrama XY de nuestros dos vectores de entrada. Como puede ver, nuestros vectores están correlacionados .

Sin embargo, el diagrama de dispersión es relativamente sencillo. En los siguientes ejemplos, aprenderá cómo ajustar los parámetros de nuestro diagrama de dispersión en R.

Ejemplo 2: Diagrama de dispersión con título y etiquetas definidos por el usuario

En el Ejemplo 2, crearemos un título principal y cambiaremos las etiquetas de los ejes de ambos ejes:

plot ( x, y,                                         # Diagrama de dispersión con texto manual 
     main =  "Este es mi diagrama de dispersión" ,
     xlab =  "Mis valores X" ,
     ylab =  "Mis valores Y" )

Diagrama de dispersión de programación R Diagrama XY 2

Figura 2: Diagrama de dispersión con título principal definido por el usuario y etiquetas de eje.

Si compara la Figura 1 y la Figura 2, verá que el título y los ejes cambiaron.

Ejemplo 3: agregar línea de ajuste a diagrama de dispersión ( función abline )

Muy a menudo es útil agregar una línea de ajuste (o pendiente de regresión) a un gráfico XY para mostrar la correlación de las dos variables de entrada.

En el lenguaje de programación R, podemos hacer eso con la función abline:

plot ( x, y )                                         # Diagrama de dispersión con línea de ajuste 
abline ( lm ( y ~ x ) , col =  "red" )

Diagrama de dispersión de programación R Diagrama XY 3

Figura 3: Diagrama de dispersión con línea recta de ajuste.

En la Figura 3, puede ver una línea de regresión roja, que se superpone a nuestro diagrama de dispersión original.

Ejemplo 4: agregar una línea de ajuste uniforme al diagrama de dispersión (función lowess)

En el Ejemplo 3, agregamos una línea de ajuste recta. Sin embargo, también es posible dibujar una línea de ajuste suave con la función lowess .

plot ( x, y )                                         # Diagrama de dispersión con 
líneas de ajuste suave ( lowess ( x, y ) , col =  "green" )

Diagrama de dispersión de programación R Diagrama XY 4

Figura 4: Diagrama de dispersión con línea de ajuste suave.

Mire de cerca la línea verde en la Figura 4. No es perfectamente recta debido a la variación aleatoria en nuestros datos.

Ejemplo 5: modificar símbolos de color y punto en diagrama de dispersión

La función de gráfico proporciona varias opciones para cambiar el diseño de nuestro gráfico XY. Por ejemplo, podemos usar el argumento pch para ajustar los símbolos de los puntos o el argumento col para cambiar el color de los puntos:

plot ( x, y,                                         # Diagrama de dispersión con color y símbolos 
     pch =  16 ,
     columna =  "#1b98e0" )

Diagrama de dispersión de programación R Diagrama XY 5

Figura 5: Diagrama de dispersión con diferentes colores y símbolos de puntos.

Ejemplo 6: Crear diagrama de dispersión con varios grupos

También podemos usar las características de diseño de la función de diagrama para representar diferentes grupos en un solo diagrama de dispersión. Considere la siguiente variable de agrupación:

grupo  <- rbinom ( 500 , 1 , 0.3 )  +  1                   # Crear variable de agrupación

Ahora, podemos usar nuestra variable de agrupación para especificar un símbolo de punto para cada punto…

group_pch <-  group                                 # Crear variable para símbolos 
group_pch [ group_pch ==  1 ]  <-  16 
group_pch [ group_pch ==  2 ]  <-  8

…y para crear un indicador para el color de cada punto:

group_col <-  group                                 # Create variable for colors 
group_col [ group_col ==  1 ]  <-  "red" 
group_col [ group_col ==  2 ]  <-  "green"

Si ahora usamos nuestros indicadores de símbolo y color dentro de la función de trazado, podemos dibujar múltiples diagramas de dispersión en el mismo gráfico :

plot ( x, y,                                         # Diagrama de dispersión con dos grupos 
     pch = group_pch,
     col = grupo_col )

Diagrama de dispersión de programación R Diagrama XY 6

Figura 6: Diagramas de dispersión múltiples en el mismo gráfico.

Se ve bien, pero en este punto el lector de nuestro gráfico no puede saber qué color representa a qué grupo… ¡Agreguemos una leyenda!

Ejemplo 7: agregar leyenda al diagrama de dispersión

Podemos agregar una leyenda a nuestro gráfico, que hemos creado en el Ejemplo 6, con la función de leyenda:

leyenda ( "superior izquierda" ,                                  # Agregar leyenda al diagrama de dispersión 
       legend = c ( "Grupo 1" , "Grupo 2" ) ,
       col = c ( "rojo" , "verde" ) ,
       pc = c ( 16 , 8 ) )

Diagrama de dispersión de programación R Diagrama XY 7

Figura 7: Diagrama de dispersión con leyenda.

La Figura 7 es exactamente igual a la Figura 6, pero esta vez está visualizando los dos grupos en una leyenda.

Ejemplo 8: Matriz de diagramas de dispersión

Si queremos visualizar varios diagramas XY a la vez, también podemos crear una matriz de diagramas de dispersión. En Base R, podemos hacer esto basándonos en la función de pares .

Sin embargo, primero necesitamos ampliar nuestros datos de ejemplo. Con la siguiente sintaxis de R, podemos crear un vector aleatorio uniformemente distribuido y almacenar este vector junto con nuestros dos vectores de ejemplo x e y en el mismo marco de datos:

z <- runif ( 500 )                                    # Crear una tercera variable aleatoria 
data <- data . marco ( x, y, z )                        # Agregar todos los vectores al marco de datos

Ahora, podemos aplicar la función de pares para dibujar una matriz de diagrama de dispersión:

pares ( datos )                                        # Crear matriz de diagramas de dispersión

Diagrama de dispersión de programación R Diagrama XY 8

Figura 8: Matriz de diagrama de dispersión creada con la función pairs().

Como puede ver en la Figura 8, cada celda de nuestra matriz de diagrama de dispersión representa la dependencia entre dos de nuestras variables.

Ejemplo 9: diagrama de dispersión en el paquete ggplot2

Hasta ahora, hemos creado todos los diagramas de dispersión con la instalación base de R. Sin embargo, existen varios paquetes que también brindan funciones para la creación de diagramas de dispersión.

En este ejemplo, le mostraré cómo dibujar un diagrama de dispersión con el paquete ggplot2 . Instalamos y cargamos el paquete:

instalar _ paquetes ( "ggplot2" )                        # Instalar la biblioteca de paquetes ggplot2 
( " ggplot2" )                                 # Cargar el paquete ggplot2

Ahora, podemos usar las funciones ggplot y geom_point para dibujar un diagrama de dispersión ggplot2 en R:

ggplot ( datos, aes ( x = x, y = y ) )  +                  # Diagrama de dispersión en ggplot2 
  geom_point ( )

Diagrama de dispersión de programación R Diagrama XY 9

Figura 9: Diagrama de dispersión creado con el paquete ggplot2.

La Figura 9 contiene el mismo diagrama XY que ya se mostró en el Ejemplo 1. Esta vez, sin embargo, el diagrama de dispersión se visualiza en el estilo típico de ggplot2.

Ejemplo 10: Diagrama de dispersión en paquete de celosía

Otro paquete popular para el dibujo de diagramas de dispersión es el paquete Lattice . Primero, necesitamos instalar y cargar el paquete de celosía:

instalar _ paquetes ( "lattice" )                        # Instalar la 
biblioteca de paquetes de celosía ( "lattice" )                                 # Cargar el paquete de celosía

El paquete de celosía contiene el comando xyplot, que se usa de la siguiente manera:

xyplot ( y ~ x, datos )                                # Diagrama de dispersión en celosía

Diagrama de dispersión de programación R Diagrama XY 10

Figura 10: Diagrama de dispersión creado con el paquete de celosía.

Nuevamente la misma imagen que en los Ejemplos 1 y 9, pero esta vez con un diseño de celosía.

Vídeo y recursos adicionales

Echa un vistazo al siguiente vídeo de mi canal de YouTube. En el video, muestro la sintaxis de programación R de este tutorial:

El video de YouTube se agregará pronto.

Además, puede leer los tutoriales relacionados en mi sitio web. Puede encontrar otros tutoriales sobre el trazado de datos aquí.

En este tutorial aprendiste a hacer un diagrama de dispersión en RStudio, es decir, el lenguaje de programación R. Si tiene preguntas o comentarios adicionales, hágamelo saber en la sección de comentarios.

Alejandro Lugon Administrator

Alejandro Lugón es un economista y escritor especializado en Python y R, conocido por ser el creador del blog Estadisticool. Nacido enxico, Lugón se graduó de la Universidad Autónoma dexico con una Licenciatura en Economía. Desde entonces ha trabajado como economista en varias empresas. Lugón también ha escrito varios libros sobre temas relacionados con la economía, el análisis de datos y la programación. Su blog Estadisticool se ha convertido en un lugar de referencia para los programadores de Python y R. Alejandro Lugón es una inspiración para aquellos que buscan aprender programación y análisis de datos. Su trabajo ha ayudado a muchas personas a entender mejor el uso de la tecnología para hacer sus trabajos.

En este artículo, ilustraré cómo lidiar con el “Error en `levels<-`(`*tmp*`, value = as.character(levels)) : factor level is duplicated” en…