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.
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)
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()
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))
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)
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))
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")
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
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 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))
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 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