Començarem carregant les dades per a les tres visualitzacions a l’inici. A més, veurem una petita mostra de les dades com a referència.
Carreguem i mostrem les dades per al Treemap. En aquestes dades podrem observar el PiB de l’any 2022 d’una gran quantitat de països del món. Ens interessa també que contenen la informació del continent.
# Llegim el conjunt de dades per al Treemap
dataset_tm <- read_excel("PiB_2022_paisos.xlsx")
kable(head(dataset_tm),
caption = "Informació del PiB del 2022 per països") %>%
kable_styling(full_width = FALSE,
position = "left",
bootstrap_options = c("striped", "hover", "condensed"))
| Country | Code | Continent | 2022 |
|---|---|---|---|
| Aruba | ABW | North America | 3279343544 |
| Afganistán | AFG | Asia | 14497243872 |
| Angola | AGO | Africa | 104399746853 |
| Albania | ALB | Europe | 19017244117 |
| Andorra | AND | Europe | 3380612573 |
| Emiratos Árabes Unidos | ARE | Asia | 502731935194 |
Carreguem i mostrem les dades per al Nightingale Chart. En aquestes dades podrem observar l’energia venuda (GWh) amb origen tecnologies renovables, l’any 2024. Ens interessa el fet que conté la data a nivell de mesos i seguidament trobem la tecnologia.
# Llegim el conjunt de dades per al Nightingale Rose
dataset_nr <- read_excel("energies_renovables_consum_2024.xlsx")
kable(head(dataset_nr),
caption = "Consum d'energies renovables l'any 2024") %>%
kable_styling(full_width = FALSE,
position = "left",
bootstrap_options = c("striped", "hover", "condensed"))
| Data | Tecnologia | Energia Venuda (GWh) | Potencia Instalada (MW) | Energia_Venuda | Potencia_Instalada |
|---|---|---|---|---|---|
| Gener | Eòlica | 56704427 | 306053379.00 | 56704427 | 306053379.00 |
| Gener | Hidràulica | 6008011 | 21476132.00 | 6008011 | 21476132.00 |
| Gener | Solar FV | 18911893 | 246795364.00 | 18911893 | 246795364.00 |
| Gener | Solar TE | 951551 | 2299.42 | 951551 | 2299.42 |
| Febrer | Eòlica | 68931877 | 306306379.00 | 68931877 | 306306379.00 |
| Febrer | Hidràulica | 5082303 | 21476132.00 | 5082303 | 21476132.00 |
Carreguem i mostrem les dades per al Connected Scatterplot. En aquestes dades podrem observar estadístiques bàsiques del F. C. Barcelona per a cadascún dels partits de la temporada passada (2024-2025). Ens interessarà saber la jornada i a nivell de dades els gols a favor, en contra i la possessió per partit.
# Llegim el conjunt de dades per al Connected Scatterplot
dataset_cs <- read_excel("20242025_estadistiques_fc_barcelona.xlsx")
kable(head(dataset_cs),
caption = "Estadístiques bàsiques per partit del F.C. Barcelona per a la temporarda 2024-2025") %>%
kable_styling(full_width = FALSE,
position = "left",
bootstrap_options = c("striped", "hover", "condensed"))
| Date | Round | Day | Venue | Result | GF | GA | Opponent | xG | xGA | Poss | Attendance | Captain | Formation | Opp Formation | Referee |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2024-08-17 | Jornada 1 | Sat | Away | W | 2 | 1 | Valencia | 3.2 | 1.0 | 63 | 46673 | Marc-André ter Stegen | 4-2-3-1 | 37350 | Jose Maria Sánchez |
| 2024-08-24 | Jornada 2 | Sat | Home | W | 2 | 1 | Athletic Club | 1.8 | 1.0 | 64 | 46448 | Marc-André ter Stegen | 4-2-3-1 | 4-2-3-1 | Jesús Gil |
| 2024-08-27 | Jornada 3 | Tue | Away | W | 2 | 1 | Rayo Vallecano | 1.4 | 0.4 | 64 | 14031 | Marc-André ter Stegen | 4-2-3-1 | 37350 | César Soto |
| 2024-08-31 | Jornada 4 | Sat | Home | W | 7 | 0 | Valladolid | 4.7 | 0.5 | 70 | 44359 | Marc-André ter Stegen | 37684 | 4-1-4-1 | Isidro Díaz de Mera |
| 2024-09-15 | Jornada 5 | Sun | Away | W | 4 | 1 | Girona | 1.9 | 1.3 | 55 | 13891 | Marc-André ter Stegen | 4-2-3-1 | 4-2-3-1 | Alejandro Muñíz |
| 2024-09-22 | Jornada 6 | Sun | Away | W | 5 | 1 | Villarreal | 3.9 | 2.2 | 63 | 22048 | Marc-André ter Stegen | 37684 | 37350 | Mateo Busquets |
Construcció i visualització del Treemap.
# Construim el treemap
treemap(
dtf = dataset_tm,
index = c("Continent", "Country"), # Nivells de jerarquia
vSize = "2022", # Mida del rectangle
type = "index", # Tipus de coloració
palette = "Set1",
fontsize.labels = c(14, 10),
align.labels = list(
c("center", "center"), # nivell 1: Continent
c("right", "bottom") # nivell 2: Country
),
title = "Treemap: Distribució del PiB per País i Continent l'any 2022"
)
# Afegim un caption
grid.text(
label = "Font: Dades reals de https://data.worldbank.org/ per a l'any 2022. Gràfic amb treemap.",
x = 0.95,
y = 0.00,
just = c("right", "bottom"),
gp = gpar(fontsize = 8, col = "gray50")
)
Construcció i visualització del Nightingale Chart.
# Modifiquem el dataset i mantenim l'ordre dels mesos
dataset_nr <- dataset_nr %>%
mutate(
Data = factor(Data, levels = unique(Data)),
Tecnologia = as.factor(Tecnologia)
)
# Construim el Nightingale Rose Chart
ggplot(dataset_nr, aes(x = Data, y = Energia_Venuda, fill = Tecnologia)) +
# Primer com a gràfic de barres
geom_bar(stat = "identity", width = 1, color = "white") +
# Passem a coordenades polars
coord_polar(start = 0) +
# Títols i Estil
theme_minimal() +
labs(
title = "Nightingale Chart:
Energia renovable venuda (GWh) per mes (2024)",
x = "",
y = "",
fill = "Tecnologia",
caption = "Font: Dades reals de https://data.cnmc.es/ per a l'any 2024. Gràfic amb ggplot2."
) +
theme(
axis.text.x = element_text(size = 9, face = "bold"),
axis.text.y = element_blank(),
panel.grid = element_blank(),
plot.title = element_text(hjust = 0.5, face = "bold", size = 14),
plot.caption = element_text(size = 8, color = "grey60")
)
Construcció i visualització del Connected Scatterplot.
# Calculem la diferència de gols acumulada
dataset_cs <- dataset_cs %>%
mutate(
Diferencia_Gols_Partit = GF - GA,
Diferencia_Gols_Acumulada = cumsum(Diferencia_Gols_Partit)
)
# Construim el Connected Scatterplot
ggplot(dataset_cs, aes(x = Poss, y = Diferencia_Gols_Acumulada)) +
# Línia: connecta els punts en l'ordre de la Jornada
geom_path(aes(group = 1),
arrow = arrow(length = unit(0.3, "cm"), ends = "last", type = "closed"),
color = "#A50044", size = 1) +
# Línia de Referència (Zero) per a la Diferència de Gols
geom_hline(yintercept = 0, linetype = "dashed", color = "grey50") +
# Punts: les observacions (Jornades)
geom_point(color = "#004D98", size = 3, alpha = 0.8) +
# Etiquetes: per identificar cada punt (Jornada)
geom_text(aes(label = Round),
vjust = -1.5, hjust = 0.5, size = 3.5, color = "black") +
# Títols i Estil
labs(
title = "Trajectòria del Barça (2024-2025): Gols Acumulats vs. Possessió",
subtitle = "Diferència de Gols Acumulada (Y) vs. Possessió del Partit (X) al llarg de la temporada",
x = "Possessió del Partit (%)",
y = "Diferència de Gols Acumulada",
caption = "Font: Dades reals de FBref.com per a la temporada 24-25 (38 Jornades). Gràfic amb ggplot2."
) +
theme_minimal() +
theme(
plot.title = element_text(face = "bold", size = 16, hjust = 0.5),
plot.subtitle = element_text(hjust = 0.5),
plot.caption = element_text(size = 8, color = "grey60")
)