7.6 Scatter plots

Vamos a aprender a representar las medidas de dispersión de una muestra. Tal como utilizamos para la tendencia central, ahora visualizaremos nuestros datos mediante gráficos. Para ello, nos valdremos de los datasets que ofrece R. En este caso, utilizamos el de coches, llamado “mtcars” que, tal como su descripción indica, posee datos de las pruebas de motores de 32 coches. Comenzamos a realizar nuestro “scatter plot” o gráfico de dispersión:

  1. Convertimos la columna “cyl”, que posee el número de cilindros de los coches de una variable numérica a una variable de factor:
View(mtcars)

mtcars$cyl <- as.factor(mtcars$cyl)

head(mtcars)

Los diagramas de dispersión se crean usando el código R que vemos a continuación. El color, el tamaño y la forma de los puntos se pueden cambiar usando la función geom_point () de la siguiente manera:

geom_point(size, color, shape)

install.packages("ggplot2")
library(ggplot2)

# Scatter plot básico

ggplot(mtcars, aes(x=wt, y=mpg)) + geom_point()

# Cambiar el tamaño y la forma del punto

ggplot(mtcars, aes(x=wt, y=mpg)) +
  geom_point(size=2, shape=23)
  
# Cambiar el tamaño de los puntos

ggplot(mtcars, aes(x=wt, y=mpg)) + 
  geom_point(aes(size=qsec))
  

Ahora, vamos a añadirle etiquetas a los puntos de nuestro gráfico con la función geom_text() de la siguiente manera:


ggplot(mtcars, aes(x=wt, y=mpg)) +
  geom_point() + 
  geom_text(label=rownames(mtcars))
  
  1. Agregar líneas de regresión Las siguientes funciones se pueden usar para agregar líneas de regresión a un diagrama de dispersión:

geom_smooth() 

geom_smooth(method="auto", se=TRUE, fullrange=FALSE, level=0.95)

# Agrega la línea de regresión

ggplot(mtcars, aes(x=wt, y=mpg)) + 
  geom_point()+
  geom_smooth(method=lm)
  
# Eliminar el intervalo de confianza

ggplot(mtcars, aes(x=wt, y=mpg)) + 
  geom_point()+
  geom_smooth(method=lm, se=FALSE)
  
# Método de Loess

ggplot(mtcars, aes(x=wt, y=mpg)) + 
  geom_point()+
  geom_smooth()
  
  1. Cambia la apariencia de puntos y líneas. Esta sección describe cómo cambiar:
  • el color y la forma de los puntos
  • el tipo de línea y el color de la línea de regresión
  • el color de relleno del intervalo de confianza
# Cambiar los colores y formas de los puntos
# Cambiar el tipo y el color de la línea

ggplot(mtcars, aes(x=wt, y=mpg)) + 
  geom_point(shape=18, color="blue")+
  geom_smooth(method=lm, se=FALSE, linetype="dashed",
             color="darkred")
          
# Cambiar el color de relleno del intervalo de confianza

ggplot(mtcars, aes(x=wt, y=mpg)) + 
  geom_point(shape=18, color="blue")+
  geom_smooth(method=lm,  linetype="dashed",
             color="darkred", fill="blue")
             
  1. Gráficos de dispersión con varios grupos. Esta sección describe cómo cambiar los colores y las formas de los puntos de forma automática y manual.

Cambiar el color / forma / tamaño del punto automáticamente

En el código R a continuación, las formas, colores y tamaños de los puntos están controlados por los niveles de la variable de factor cyl:

# Cambiar las formas de los puntos por los niveles de cilindros

ggplot(mtcars, aes(x=wt, y=mpg, shape=cyl)) +
  geom_point()
  
  
# Cambiar formas y colores de puntos

ggplot(mtcars, aes(x=wt, y=mpg, shape=cyl, color=cyl)) +
  geom_point()
  
# Cambiar formas, colores y tamaños de puntos

ggplot(mtcars, aes(x=wt, y=mpg, shape=cyl, color=cyl, size=cyl)) +
  geom_point()
  
  1. ¿Cómo agregar líneas de regresión? Las líneas de regresión se pueden agregar de la siguiente manera:

# Agregar líneas de regresión

ggplot(mtcars, aes(x=wt, y=mpg, color=cyl, shape=cyl)) +
  geom_point() + 
  geom_smooth(method=lm)
  
# Eliminar intervalos de confianza
# Extiende las líneas de regresión

ggplot(mtcars, aes(x=wt, y=mpg, color=cyl, shape=cyl)) +
  geom_point() + 
  geom_smooth(method=lm, se=FALSE, fullrange=TRUE)

El color de relleno de los intervalos de confianza se puede cambiar de la siguiente manera:

ggplot(mtcars, aes(x=wt, y=mpg, color=cyl, shape=cyl)) + geom_point() + geom_smooth(method=lm, aes(fill=cyl))

  
Para cambiar el color / forma / tamaño del punto manualmente, se utilizan las siguientes funciones:

```r
scale_shape_manual() for point shapes
scale_color_manual() for point colors
scale_size_manual() for point sizes

# Cambiar formas y colores de puntos manualmente

ggplot(mtcars, aes(x=wt, y=mpg, color=cyl, shape=cyl)) +
  geom_point() + 
  geom_smooth(method=lm, se=FALSE, fullrange=TRUE)+
  scale_shape_manual(values=c(3, 16, 17))+ 
  scale_color_manual(values=c('#999999','#E69F00', '#56B4E9'))+
  theme(legend.position="top")
  
# Cambiar el tamaño de los puntos manualmente
ggplot(mtcars, aes(x=wt, y=mpg, color=cyl, shape=cyl))+
  geom_point(aes(size=cyl)) + 
  geom_smooth(method=lm, se=FALSE, fullrange=TRUE)+
  scale_shape_manual(values=c(3, 16, 17))+ 
  scale_color_manual(values=c('#999999','#E69F00', '#56B4E9'))+
  scale_size_manual(values=c(2,3,4))+
  theme(legend.position="top")

También es posible cambiar manualmente los colores de puntos y líneas usando las funciones:


scale_color_brewer() : para utilizar paletas de colores del paquete RColorBrewer

scale_color_grey() : para utilizar paletas de colores grises

p <- ggplot(mtcars, aes(x=wt, y=mpg, color=cyl, shape=cyl)) +
  geom_point() + 
  geom_smooth(method=lm, se=FALSE, fullrange=TRUE)+
  theme_classic()
  
# Utilice paletas de colores "brewer"

p+scale_color_brewer(palette="Dark2")

# Usar escala de grises

p + scale_color_grey()

Agregue alfombras marginales a un diagrama de dispersión. La función geom_rug () se puede utilizar:


geom_rug(sides ="bl")

# Sides : una cadena que controla en qué lados de la parcela aparecen las alfombras. El valor permitido es una cadena que contiene cualquiera de los "problemas", para arriba, derecha, abajo e izquierda.