library(ggplot2)
library(dplyr)
library(forcats)
df <- tribe_colours %>%
group_by(season_name) %>%
mutate(
xmin = 1,
xmax = 2,
ymin = 1:n(),
ymax = ymin + 1
) %>%
ungroup() %>%
mutate(
season_name = fct_reorder(season_name, season),
font_colour = ifelse(tribe_colour == "#000000", "white", "black")
)
ggplot() +
geom_rect(data = df,
mapping = aes(xmin = xmin, xmax = xmax, ymin = ymin, ymax = ymax),
fill = df$tribe_colour) +
geom_text(data = df,
mapping = aes(x = xmin+0.5, y = ymin+0.5, label = tribe),
colour = df$font_colour) +
theme_void() +
facet_wrap(~season_name, scales = "free_y")
Run the code above in your browser using DataLab