library(readxl)
library(tidyverse)
library(RColorBrewer)
library(sf)
library(scales)
library(maps)
library(tidytext)
library(ggwordcloud)
dades_unesco <- read_xls("whc_sites.xls")
En aquest primer gràfic s’analitza la distribució del tipus (cultural, natural o mixt) dels patrimonis de la humanitat segons la UNESCO.S’utilitza una paleta de colors personalitzada del paquet RColorBrewer.
dades_unesco %>%
count(category) %>%
ggplot(aes(x = reorder(category, -n), y = n, fill = category)) +
geom_col() +
scale_fill_brewer(palette = "Pastel2",
labels = c("Cultural", "Natural", "Mixt")) +
labs(title = "Gràfic de barres",
subtitle = "Distribució per categoria",
x = "Categoria",
y = "Nombre de llocs",
fill = "Categoria") +
theme_minimal() +
theme(
plot.title = element_text(hjust = 0.5, face = "bold"),
plot.subtitle = element_text(hjust = 0.5, face = "italic"),
axis.text.x = element_blank()
)
El gràfic de línies següent permet observar l’evolució del nombre d’incorporació de nous llocs de forma cronològica.
dades_unesco %>%
count(date_inscribed) %>%
ggplot(aes(x = date_inscribed, y = n)) +
geom_line(linewidth = 1.2, color = "#B3E2CD") +
labs(title = "Gràfic de línies",
subtitle = "Evolució del nombre de llocs inscrits",
x = "Any d'inscripció",
y = "Nombre total de llocs") +
theme_minimal() +
theme(
plot.title = element_text(hjust = 0.5, face = "bold"),
plot.subtitle = element_text(hjust = 0.5, face = "italic")
)
Aquest gràfic ordena les diferents regions segons el seu volum de llocs de patrimoni de l’humanitat. S’ha realitzat una transformació de les dades per agrupar i aïllar aquells elements catalogats com a transfronterers.
dades_unesco %>%
mutate(region_en = if_else(str_detect(region_en, ","), "Fronteres", region_en)) %>%
count(region_en) %>%
ggplot(aes(x = n, y = reorder(region_en, n), fill = region_en)) +
geom_col(show.legend = FALSE) +
scale_fill_brewer(palette = "Pastel2")+
scale_y_discrete(labels = c(
"Fronteres",
"Estats Àrabs",
"Àfrica",
"Amèrica Llatina i el Carib",
"Àsia i el Pacífic",
"Europa i Amèrica del Nord"
)) +
labs (title = "Gràfic de columnes",
subtitle = "Nombre de llocs per regió",
caption = "Nota: 'Fronteres' engloba els llocs transfronterers d'Àsia-Pacífic/Europa i Àsia-Pacífic/Europa/Latino Amèrica.",
x = "Nombre de llocs",
y = "Regions",
fill = "Regions") +
theme_minimal() +
theme (
plot.title = element_text(hjust = 0.5, face = "bold"),
plot.subtitle = element_text(hjust = 0.5, face = "italic"),
plot.caption = element_text(hjust = 0.5)
)
S’ha generat una matriu d’unió espacial a través d’un left join creuant la informació geomètrica global del paquet maps amb el primer país extret de la variable states_name_en. Les tonalitats mesuren el nombre de llocs de patrimoni de l’humanitat acumulats per cada país.
mon_dades <- map_data("world")
recompte_paisos <- dades_unesco %>%
filter(!is.na(states_name_en)) %>%
mutate(primer_pais = str_split_i(states_name_en, ",", 1)) %>%
count(primer_pais, name = "num_llocs")
mapa_calor_dades <- mon_dades %>%
left_join(recompte_paisos, by = c("region" = "primer_pais")) %>%
mutate(num_llocs = if_else(is.na(num_llocs), 0, num_llocs))
ggplot(mapa_calor_dades, aes(x = long, y = lat, group = group, fill = num_llocs)) +
geom_polygon(color = "white", linewidth = 0.1) +
scale_fill_gradient(low = "#CBD5E8", high = "#7570B3", name = "Llocs UNESCO")+
coord_fixed(1.3)+
theme_minimal()+
labs(
title = "MAPA 1",
subtitle = "Concentració de llocs per país",
x = "Longitud",
y = "Latitud") +
theme(
plot.title = element_text(hjust = 0.5, face = "bold"),
plot.subtitle = element_text(hjust = 0.5, face = "italic"),
legend.position = "bottom"
)
A diferència de l’anterior, aquest gràfic utilitza les coordenades pures de longitud i latitud recollides per plasmar la posició exacta de cada un dels monuments de la base de dades, utilitzant codis de color per diferenciar la categoria.
dades_unesco %>%
filter(!is.na(latitude), !is.na(longitude)) %>%
ggplot() +
geom_polygon(data = mon_dades,
aes(x = long, y = lat, group = group),
fill = "#CBD5E8",
color = "white",
linewidth = 0.2) +
geom_point(data = dades_unesco %>% filter(!is.na(latitude), !is.na(longitude)),
aes(x = longitude, y = latitude, color = category),
alpha = 0.7, size = 0.6) +
scale_color_manual(values = c("#7570B3", "#F781BF", "#FFF95B"),
labels = c("Cultural", "Natural", "Mixt")) +
coord_fixed(1.3) +
theme_minimal() +
labs(title = "MAPA 2",
subtitle = "Distribució del Patrimoni Mundial per Categoria",
x = "Longitud",
y = "Latitud",
color = "Categoria") +
theme(
plot.title = element_text(hjust = 0.5, face = "bold"),
plot.subtitle = element_text(hjust = 0.5, face = "italic"),
legend.position = "bottom"
)
A partir de la columna short_description_es s’ha fet una fragmentació (tokenització) de les paraules. Per obtenir les paraules amb autèntic contingut semàntic, s’ha aplicat un llistat de paraules buides en espanyol i s’ha realitzat una neteja manual d’urgència de codis rars HTML (p, br, amp, etc.) i d’entitats de caràcters d’accentuació (oacute, iacute, aacute, entre d’altres).
paraules_buides_es <- get_stopwords(language = "es")
text_analitzat <- dades_unesco %>%
filter(!is.na(short_description_es)) %>%
unnest_tokens(word, short_description_es) %>%
anti_join(paraules_buides_es, by = "word") %>%
filter(!word %in% c("del", "al", "más", "sus", "como", "entre", "esta", "este", "son", "se",
"p", "br", "em", "strong", "li", "ul", "amp", "href", "class",
"oacute", "iacute", "aacute", "eacute", "uacute", "ntilde", "quot", "nbsp", "n", "m", "s")) %>%
count(word, sort = TRUE)
Finalment, mostrem el resultat del processat textual utilitzant un gràfic de tipus Wordcloud amb els 80 conceptes més repetits.
text_analitzat %>%
head(80) %>%
ggplot(aes(label = word, size = n, color = n)) +
geom_text_wordcloud_area(rm_outside = TRUE) +
scale_size_area(max_size = 30) +
scale_color_gradient(low = "#7570B3", high = "#F781BF") +
theme_void() +
labs(title = "Exercici 4: Anàlisi de text",
subtitle = "Núvol de les paraules més recurrents a les descripcions del Patrimoni Mundial")+
theme(
plot.title = element_text(hjust = 0.5, face = "bold", size = 16),
plot.subtitle = element_text(hjust = 0.5, face = "italic", size = 11),
plot.margin = margin(20, 20, 20, 20)
)
Mitjançant la combinació de les diferents tècniques establertes en el document podem extreure que:
Desproporció tipològica: Els llocs dedicats al patrimoni Cultural són significativament superiors en volum respecte als espais Naturals i Mixts.
Concentració espacial: Els mapes demostren una distribució desigual a nivell global, amb una elevada taxa de concentració a la regió d’Europa i Amèrica del Nord.
Paraules clau: El núvol de paraules confirma que la descripció oficial de la UNESCO es basa en conceptes històrics i urbans, destacant termes com “siglo”, “ciudad”, “histórico” o “arquitectura”.