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 3: 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)
)
Després d’elaborar tots aquests gràfics i anlisis del text podem concloure que:
Els nombre de llocs dedicats al patrimoni cultural són significativament superiors respecte als espais naturals i mixts.
A través dels mapes s’observa una distribució desigual a nivell global dels llocs dedicats al patrimoni cultural, aquests es concentren sobretot a la regió d’Europa i Amèrica del Nord.
El núvol de paraules ens fa interpretar que la gran majoria de llocs dedicats al patrimoni cultural es troben en ciutats perquè els termes més utilitzats són “siglo”, “ciudad”, “histórico” o “arquitectura”.