Un gráfico de burbujas (bubble chart) es un tipo de gráfico de dispersión donde los puntos se escalan en base a una variable.

Datos de muestra

Para crear un gráfico de burbujas en ggplot2 necesitarás un data frame que contenga las coordenadas de los puntos (x e y) y una variable que represente los tamaños de las burbujas (size). Además, puedes tener una variable que represente grupos o etiquetas.

# Datos de ejemplo
x = c(2, 5, 7, 3, 6, 1, 9, 2)
y = c(2.2, 2, 1, 2, 1, 4, 1, 6)
size = c(100, 30, 50, 250, 120, 140, 80, 36)
group = c("A", "A", "A", "B", "C", "B", "D", "B")

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

Gráficos de burbujas en ggplot2 con geom_point y scale_size o scale_size_area

Para crear un gráfico de burbujas básico en ggplot2 tendrás que pasar las coordenadas de la variable que representa tamaños a la función aes y luego utilizar la función geom_point.

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

ggplot(df, aes(x = x, y = y, size = size)) +
  geom_point()

Gráfico de burbujas en ggplot2

Reescalar las burbujas

Sin embargo, el gráfico anterior se puede mejorar haciendo uso de la función scale_size, ya que las burbujas por defecto son pequeñas. Esta función escala el tamaño de las burbujas a un rango determinado de tamaños. Ten en cuenta que también puedes proporcionar un nombre que se mostrará en la leyenda del gráfico.

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

ggplot(df, aes(x = x, y = y, size = size)) +
  geom_point() +
  scale_size(name = "Tamaño", range = c(3, 15))

Gráfico de burbujas en ggplot2 con scale_size

scale_size_area

Una función alternativa para crear gráficos de burbujas es scale_size_area que garantiza que un valor cero se asigne a un tamaño 0 y en lugar de un rango se especifica un tamaño máximo con max_size. Esta función es más útil cuando el tamaño representa un recuento de observaciones.

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

ggplot(df, aes(x = x, y = y, size = size)) +
  geom_point() +
  scale_size_area(max_size = 10)

ggplot2 bubble graph

Etiquetar cada burbuja

Con las funciones geom_text o geom_label puedes agregar textos a las burbujas. Recuerda que las funciones proporcionan los argumentos nudge_x y nudge_y para personalizar la posición de los textos o etiquetas.

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

ggplot(df, aes(x = x, y = y, size = size)) +
  geom_point() +
  geom_text(label = group, nudge_x = 0.5, color = "red") +
  scale_size(name = "Tamaño", range = c(3, 15))

Etiquetar las burbujas de un gráfico de burbujas en ggplot2

Eliminar la leyenda o cambiar su posición

Es posible eliminar la leyenda o modificar su posición con el argumento legend.position de la función theme.

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

ggplot(df, aes(x = x, y = y, size = size)) +
  geom_point() +
  scale_size(name = "Tamaño", range = c(3, 15)) +
  theme(legend.position = "none")

Eliminar o cambiar la leyenda de un gráfico de burbujas en ggplot2

Color de las burbujas

Cambiar el color de las burbujas en ggplot2

El color negro por defecto de las burbujas se puede personalizar a través del argumento color de la función geom_point, especificando un nuevo color.

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

ggplot(df, aes(x = x, y = y, size = size)) +
  geom_point(color = "red") +
  scale_size(name = "Tamaño", range = c(3, 15))

Color de fondo y de borde de las burbujas de ggplot2

Color de fondo y de borde de las burbujas

Ten en cuenta que hay algunos símbolos que pueden tener color de fondo y de borde a la vez, como el símbolo 21.

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

ggplot(df, aes(x = x, y = y, size = size)) +
  geom_point(fill = "cornflowerblue", color = "black", shape = 21) +
  scale_size(name = "Tamaño", range = c(3, 15))

Transparencia de las burbujas de un gráfico de burbujas en R

Transparencia del color

También puedes controlar el nivel de transparencia de los colores con alpha, que va desde 0 (transparente) a 1 (opaco).

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

ggplot(df, aes(x = x, y = y, size = size)) +
  geom_point(color = "red", alpha = 0.5) +
  scale_size(name = "Tamaño", range = c(3, 15))

Gráfico de burbujas en R con color por grupo

Color en base a una variable categórica

Si tienes una variable categórica que representa grupos puedes pasar el nombre de esa variable a color dentro de aes, de modo que cada grupo de burbujas se coloreará con un color diferente. Usa scale_color_manual o una función equivalente si quieres personalizar los colores por defecto.

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

ggplot(df, aes(x = x, y = y, size = size, color = group)) +
  geom_point() +
  scale_size(name = "Tamaño", range = c(1, 10))

Color de las burbujas en base a una variable continua en ggplot2

Color en base a una variable numérica

El color de las burbujas también se puede asignar a una variable continua. En el ejemplo siguiente utilizamos la variable y, de forma que se aplicará un color degradado a las burbujas en base a esa variable. Usa scale_color_gradient, scale_color_gradient2 o scale_color_gradientn para personalizar la paleta de colores.

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

ggplot(df, aes(x = x, y = y, size = size, color = y)) +
  geom_point() +
  scale_size(name = "Tamaño", range = c(1, 10))

También te puede interesar