El siguiente conjunto de datos representa la clasificación (y
) de algunos jugadores de tenis (grupo
) a lo largo de los años (x
). Estos datos serán usados en los ejemplos siguientes.
año <- rep(2019:2021, 4)
posicion <- c(4, 2, 2, 3, 1, 4, 2, 3, 1, 1, 4, 3)
jugador <- c("A", "A", "A",
"B", "B", "B",
"C", "C", "C",
"D", "D", "D")
df <- data.frame(x = año,
y = posicion,
grupo = jugador)
Para crear un bump chart en ggplot2 tendrás que cargar los paquetes ggbump
y tidyverse
.
# install.packages("tidyverse")
# install.packages("ggbump")
library(tidyverse)
library(ggbump)
ggplot(df, aes(x = x, y = y, color = grupo)) +
geom_bump()
Puedes agregar los puntos sobre las líneas con geom_point
.
# install.packages("tidyverse")
# install.packages("ggbump")
library(tidyverse)
library(ggbump)
ggplot(df, aes(x = x, y = y, color = grupo)) +
geom_bump(size = 1.5) +
geom_point(size = 6)
Los colores de las líneas y puntos se pueden cambiar con una escala de color predefinida, como scale_color_brewer
, o establecer colores personalizados con scale_color_manual
.
# install.packages("tidyverse")
# install.packages("ggbump")
library(tidyverse)
library(ggbump)
ggplot(df, aes(x = x, y = y, color = grupo)) +
geom_bump(size = 1.5) +
geom_point(size = 6) +
scale_color_brewer(palette = "RdBu")
Se pueden realizar más personalizaciones. En el siguiente ejemplo agregamos los textos en los lados del gráfico para mostrar el cambio en la clasificación.
# install.packages("tidyverse")
# install.packages("ggbump")
library(tidyverse)
library(ggbump)
ggplot(df, aes(x = x, y = y, color = grupo)) +
geom_bump(size = 1.5) +
geom_point(size = 6) +
geom_text(data = df %>% filter(x == min(x)),
aes(x = x - 0.1, label = grupo),
size = 5, hjust = 1) +
geom_text(data = df %>% filter(x == max(x)),
aes(x = x + 0.1, label = grupo),
size = 5, hjust = 0) +
scale_color_brewer(palette = "RdBu") +
theme_void() +
theme(legend.position = "none")
También te puede interesar