La función geom_hex

Dado un data frame con variables numéricas puedes crear un gráfico hexbin en ggplot2 haciendo uso de geom_hex.

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

# Datos
set.seed(1)
df <- data.frame(x = rnorm(2000), y = rnorm(2000))

ggplot(df, aes(x = x, y = y)) +
  geom_hex()

geom_hex en ggplot2

Pocas clases

Puedes controlar el número de clases en ambas direcciones con el argumento bins. El valor por defecto es 30.

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

# Datos
set.seed(1)
df <- data.frame(x = rnorm(2000), y = rnorm(2000))

ggplot(df, aes(x = x, y = y)) +
  geom_hex(bins = 15)

Gráfico hexbin en ggplot2

Muchas clases

Ten en cuenta que si estableces demasiadas clases el gráfico hexbin tendrá el aspecto de un gráfico de dispersión.

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

# Datos
set.seed(1)
df <- data.frame(x = rnorm(2000), y = rnorm(2000))

ggplot(df, aes(x = x, y = y)) +
  geom_hex(bins = 60)

geom_hex argumento bins

Personalización del color

Color del borde de los hexágonos

Color del borde

El color del borde de los hexágonos se puede personalizar con el argumento color de la función geom_hex.

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

# Datos
set.seed(1)
df <- data.frame(x = rnorm(2000), y = rnorm(2000))

ggplot(df, aes(x = x, y = y)) +
  geom_hex(color = "white")

Color de fondo y transparencia de los hexágonos

Color de fondo y transparencia

También puedes establecer un color para el fondo de los hexágonos con fill y controlar su grado de transparencia con alpha.

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

# Datos
set.seed(1)
df <- data.frame(x = rnorm(2000), y = rnorm(2000))

ggplot(df, aes(x = x, y = y)) +
  geom_hex(color = 1, fill = 4, alpha = 0.4) 

Hexbin en ggplot2

Paleta de colores

Si quieres tener una paleta de colores degradada que represente los valores puedes cambiar los colores por defecto con scale_fill_viridis_c, scale_fill_gradient o una función similar.

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

# Datos
set.seed(1)
df <- data.frame(x = rnorm(2000), y = rnorm(2000))

ggplot(df, aes(x = x, y = y)) +
  geom_hex() +
  scale_fill_viridis_c()

Personalización de la leyenda

Ancho y alto

Cuando creas un gráfico hexbin aparecerá una barra de color a modo de leyenda de manera automática. Puedes controlar el ancho y la altura de la barra con los argumentos barwidth y barheight.

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

# Datos
set.seed(1)
df <- data.frame(x = rnorm(2000), y = rnorm(2000))

ggplot(df, aes(x = x, y = y)) +
  geom_hex() +
  guides(fill = guide_colourbar(barwidth = 0.7,
                                barheight = 15))

Personalización de la leyenda de un gráfico hexbin en ggplot2

Cambiar el título

El título por defecto de la leyenda es “count”. Puedes cambiar con el argumento title de la función guide_colourbar.

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

# Datos
set.seed(1)
df <- data.frame(x = rnorm(2000), y = rnorm(2000))

ggplot(df, aes(x = x, y = y)) +
  geom_hex() +
  guides(fill = guide_colourbar(title = "Conteo"))

Cambiar el título de un gráfico hexbin en ggplot2

Eliminar las etiquetas y las marcas

Ten en cuenta que puedes eliminar las marcas (ticks) y/o las etiquetas estableciendo los argumentos label y ticks como FALSE.

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

# Datos
set.seed(1)
df <- data.frame(x = rnorm(2000), y = rnorm(2000))

ggplot(df, aes(x = x, y = y)) +
  geom_hex() +
  guides(fill = guide_colourbar(label = FALSE,
                                ticks = FALSE))

Argumentos label y ticks de la función guide_colourbar de ggplot2

Eliminar la leyenda

Por último, si quieres deshacerte de la leyenda puedes establecer su posición como "none".

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

# Datos
set.seed(1)
df <- data.frame(x = rnorm(2000), y = rnorm(2000))

ggplot(df, aes(x = x, y = y)) +
  geom_hex() +
  theme(legend.position = "none")

Borrar la leyenda en un gráfico hexbin en ggplot2

También te puede interesar