R Markdown

Llibreries necessàries

library(readxl) library(tidyverse) library(RColorBrewer) library(sf) library(scales) library(maps) library(tidytext) library(ggwordcloud)

Base de dades

dades_unesco <- read_xls(“whc_sites.xls”)

Exercici 1: Anàlisi Gràfica Descriptiva

Gràfic 1.1: Gràfic de columnes (vertical)

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() )

Gràfic 1.2: Gràfic de línies

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") )

Gràfic 1.3: Gràfic de barres (horitzontal)

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) )

Exercici 2: Mapes

Mapa 2.1: Mapa de calor

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” )



### Mapa 2.2: Mapa de calor
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"
  )

Exercici 3: Anàlisi textual

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_net <- 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)
    )

Conclusions Generals

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”.