Com a derrota do Fluminense para o Manchester City na última decisão do Mundial Interclubes, me dei conta que a América do Sul não vence uma decisão deste torneio desde 2012. Ou seja, 2023 foi a 11a. vez consecutiva em que um clube do Brasil, Argentina, Uruguai, Paraguai ou outro país nosso vizinho não conquista este tornio. Pensando nisso, criei uma visualização de como isso se comporta.

O primeiro passo foi baixar os resultados de todos os campeões mundiais desde 1960, disponível na Wikipedia em List of world champion football clubs. Felizmente, isso é trivial de ser feito com o pacote `rvest``:

library(rvest)
library(tidyverse)
theme_set(theme_bw())

url <- "https://en.wikipedia.org/wiki/List_of_world_champion_football_clubs"

pagina <- read_html(url)

A seguir, extraio as tabelas disponíveis na página:

tabelas <- html_table(pagina)

Como há dois tipos de torneios mundiais, colocados cada um em sua própria tabela na Wikipedia. extraio os resultados dos torneios não oficiais da FIFA (pré-2005) e da FIFA (2000 e 2005 em diante) separadamente:

library(janitor)

nao_fifa <- 
  tabelas[[1]] |> 
  clean_names() |> 
  select(year, country, winners, runners_up, country_2) |> 
  distinct() |> 
  filter(nchar(country) <= 3)

fifa <- 
  tabelas[[3]] |> 
  clean_names() |> 
  mutate(country = c("BRA", "BRA", "BRA", "ITA", "ENG", "ESP", "ITA", "ESP", "BRA", "GER", "ESP", "ESP", "ESP", "ESP", "ESP", "ENG", "GER", "ENG", "ESP", "", ""),
         country_2 = c("BRA", "ENG", "ESP", "ARG", "ECU", "ARG", "COD", "BRA", "ENG", "MOR", "ARG", "ARG", "JPN", "BRA", "UAE", "BRA", "MEX", "BRA", "SAU", "", "")) |> 
  select(year = season, country, winners = champions, runners_up, country_2)

Depois os junto e aproveito para limpá-los, renomeando colunas, retirando aspas dos nomes, removendo notas de rodapé e tudo o que for necessário. Cada um destes passos está documentado abaixo:

dados <- 
  # juntar conjuntos de dados
  bind_rows(nao_fifa, fifa) |> 
  # organizar por ano
  arrange(year) |> 
  # renomear colunas
  rename(country_winners = country, country_runners_up = country_2) |> 
  # retirar aspas dos nomes dos paises
  mutate(winners = str_replace_all(winners, '"', "")) |> 
  mutate(runners_up = str_replace_all(runners_up, '"', "")) |> 
  # renomear clubes: retirar tudo o que estah entre colchetes;
  #                  retirar strings do tipo #1, #2, ...
  mutate(winners = str_replace_all(winners, "\\[.\\]", "")) |> 
  mutate(winners = str_replace_all(winners, "#[0-9]", "")) |> 
  # renomear clubes: retirar tudo o que estah entre colchetes;
  #                  retirar strings do tipo #1, #2, ...
  mutate(runners_up = str_replace_all(runners_up, "\\[.\\]", "")) |> 
  mutate(runners_up = str_replace_all(runners_up, "#[0-9]", "")) |> 
  # determinar continentes
  mutate(continent_winners = case_when(
    country_winners %in% c("ARG", "BRA", "CHI", "ECU", "PAR", "URU") ~ "South America",
    country_winners %in% c("COD", "MOR") ~ "Africa",
    country_winners %in% c("JPN", "SAU", "UAE") ~ "Asia",
    .default = "Europe"
  )) |> 
  mutate(continent_runners_up = case_when(
    country_runners_up %in% c("ARG", "BRA", "CHI", "ECU", "PAR", "URU") ~ "South America",
    country_runners_up %in% c("COD", "MOR") ~ "Africa",
    country_runners_up %in% c("JPN", "SAU", "UAE") ~ "Asia",
    .default = "Europe"
  )) |> 
  # reordenar colunas
  select(year, continent_winners, country_winners, winners, runners_up, country_runners_up, continent_runners_up) |> 
  # remover anos sem campeoes
  filter(year <= 2023)

Em seguida, calculo o número de vitórias acumuladas por continente:

dados_acumulados <- 
  dados |> 
  count(year, continent_winners) |> 
  complete(year, continent_winners,
           fill = list(n = 0)) |> 
  group_by(continent_winners) |> 
  mutate(titulos_acumulados = cumsum(n))

Ai é só plotar o resultado final:

ggplot(dados_acumulados, aes(x = year, y = titulos_acumulados, colour = continent_winners)) + 
  geom_line() + 
  scale_colour_viridis_d() + 
  labs(x = "Ano", y = "Número de Títulos", colour = "Continente") + 
  scale_x_continuous(n.breaks = 9)

Apenas comparei Europa e América do Sul porque nunca houve um campeão mundial de clubes de outro continente. Perceba como a linha referente aos títulos da América do Sul e da Europa cresciam de forma concomitante até 2012. Desde o último título do nosso continente, mais de 11 anos atrás, a linha de títulos está constante. Logicamente isso é o esperado, dado que não houve nenhum título conquistado por times daqui, mas acho impressionante ver isso colocado assim graficamente.