Gráfico de dispersión por grupo en ggplot2

Datos

El siguiente data frame contiene dos variables numéricas y una variable categórica que representa grupos. Este data frame será usado en los siguientes ejemplos.

set.seed(1)

# Simulación de datos
x <- runif(500)
y <- 5 * x ^ 2 + rnorm(length(x), sd = 2)
grupo <- ifelse(x < 0.4, "A",
                ifelse(x > 0.8, "C", "B"))
x <- x + runif(length(x), -0.2, 0.2)

# Data frame
df <- data.frame(x = x, y = y, grupo = grupo)

Diagrama de dispersión por grupo con geom_point

Para crear un gráfico de dispersión con colores por grupo en ggplot2 tan solo necesitas especificar tus variables numéricas y pasar la variable categórica al argumento color (o colour) de la función aes.

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

# Gráfico de dispersión por grupo
ggplot(df, aes(x = x, y = y, color = grupo)) +
  geom_point()

Gráfico de dispersión por grupo en ggplot2

Cambiar los colores

La paleta de colores por defecto se puede personalizar de varias maneras. Puedes usar la función scale_color_manual y pasar un vector de colores al argumento values o elegir una paleta de colores predefininda, como scale_color_viridis_d.

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

# Vector de colores
cols <- c("#1170AA", "#55AD89", "#EF6F6A")

ggplot(df, aes(x = x, y = y, color = grupo)) +
  geom_point() +
  scale_color_manual(values = cols)

Gráfico de dispersión con color por grupo en ggplot2

Cambiar la forma y el tamaño

La forma por defecto de las observaciones son círculos, pero puedes elegir cualquier símbolo con el argumento shape. El tamaño de los símbolos se puede personalizar haciendo uso del argumento size.

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

ggplot(df, aes(x = x, y = y, color = grupo)) +
  geom_point(shape = 17, size = 2)

Cambiar el símbolo de un gráfico de dispersión por grupo en ggplot2

Forma por grupo

Si quieres que cada grupo tenga un símbolo diferente pasa la variable categórica al argumento shape de la función aes. Ten en cuenta que puedes especificar este argumento sin tener que especificar color.

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

ggplot(df, aes(x = x, y = y, color = grupo,
               shape = grupo)) +
  geom_point(size = 2)

Diagrama de dispersión con forma por grupo en ggplot2

Personalización de la leyenda

Gráfico de dispersión en ggplot2 título de la leyenda

Título de la leyenda

Cuando creas un gráfico de dispersión se crea una leyenda de manera automática basada en la variable categórica. El título por defecto de la leyenda es el nombre de la variable, pero puedes sobrescribirlo con el siguiente código.

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

ggplot(df, aes(x = x, y = y, color = grupo)) +
  geom_point(size = 2) +
  guides(colour = guide_legend(title = "Título"))

Cambiar las etiquetas de la leyenda de un gráfico de dispersión en ggplot2

Etiquetas

Las etiquetas también se pueden personalizar. Puedes hacer uso del argumento labels de la función scale_color_discrete para cambiarlas.

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

ggplot(df, aes(x = x, y = y, color = grupo)) +
  geom_point(size = 2) +
  scale_color_discrete(labels = c("G1", "G2", "G3"))

Eliminar leyenda de un gráfico de dispersión en ggplot2

Eliminar la leyenda

En caso de que quieras deshacerte de la leyenda establece legend.position = "none" dentro de la función theme.

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

ggplot(df, aes(x = x, y = y, color = grupo)) +
  geom_point(size = 2) +
  theme(legend.position = "none")
Storytelling con Datos

Visualización de datos para profesionales

Comprar en Amazon
ggplot2

Elegant Graphics for Data Analysis

Comprar en Amazon
Better Data Visualizations

A Guide for Scholars, Researchers, and Wonks

Comprar en Amazon

También te puede interesar