Crear un elegante y simple gráfico de dispersión con ggplot2 en R

Vamos a ver con estos sencillos pasos como podemos crear un sencillo y elegante gráfico de dispersión en R Studio usando el paquete ggplot2.

En un nuevo proyecto de R vamos a instalar el nuevo paquete (solo se lo debe hacer una vez, luego se puede anteponer el símbolo de # para mantenerlo como un comentario) escribimos el siguiente código:

install.packages("ggplot2")

Para activar la librería ggplot2 escribimos:

library(ggplot2)

Ahora vamos a crear una tabla, primero creamos las columnas (en este caso Altura y Diámetro)

Altura = c(23,16,26,30,23,17,32,31,23,25)
Diámetro = c(15,16,25,26,22,19,40,36,19,31)

En este momento unimos ambas columnas para tener la tabla

Tabla = data.frame (cbind(Altura,Diámetro))

Para hacer un dibujo simple usamos la función plot, donde seleccionamos Tabla$Diámetro como X, y Tabla$Altura como Y, adicionalmente con xlab y ylab definimos las etiquetas:

plot(Tabla$Diámetro,Tabla$Altura, xlab = "cm", ylab = "m")

Hasta el momento el gráfico debe quedar algo como la siguiente imagen:

Rplot simple

Ahora lo vamos a mostrar de una forma elegante con ggplot2, con la función ggplot, primero se define el nombre de la Tabla, luego las columnas a dibujar (en este caso Tabla$Diámetro para X, y Tabla$Altura para Y), luego se agrega un + seguido de la función geom_point(shape=1) para poder dibujar.

ggplot(Tabla, aes(x=Tabla$Diámetro, y=Tabla$Altura)) +
  geom_point(shape=1)

Pero si deseamos agregar el título, etiquetas, línea de tendencia simplemente agregamos más funciones como labs(title = «», subtitle = «», caption = «») + labs(x = «», y = «») + geom_smooth(method=lm , color=»red», se=TRUE)

ggplot(Tabla, aes(x=Tabla$Diámetro, y=Tabla$Altura)) +
  geom_point(shape=1) +
  labs(title = "Altura vs Diámetro", subtitle = "", caption = "") +
  labs(x = "cm", y = "m") +
  geom_smooth(method=lm , color="red", se=TRUE)

Quedando todo el código completo de la siguiente manera:

### Instalar y activar ggplot2

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

### Crear una tabla

Altura = c(23,16,26,30,23,17,32,31,23,25)
Diámetro = c(15,16,25,26,22,19,40,36,19,31)

Tabla = data.frame (cbind(Altura,Diámetro))

### Hacer un dibujo simple:

plot(Tabla$Diámetro,Tabla$Altura, xlab = "cm", ylab = "m")

### Dibujar con ggplot2

ggplot(Tabla, aes(x=Tabla$Diámetro, y=Tabla$Altura)) +
  geom_point(shape=1)

### Agregar título, etiquetas, línea de tendencia

ggplot(Tabla, aes(x=Tabla$Diámetro, y=Tabla$Altura)) +
  geom_point(shape=1) +
  labs(title = "Altura vs Diámetro", subtitle = "Gráfico simple de dispersión", caption = "El blog de franz") +
  labs(x = "Diámetro (cm)", y = "Altura (m)") +
  geom_smooth(method=lm , color="red", se=TRUE)

Y finalmente el gráfico se ve así:

Rplot ggplot2