Introducció

Aquest informe analitza els llocs declarats Patrimoni de la Humanitat per la UNESCO.

setwd("C:/Users/lu220/Desktop/Big data")

library(readxl)
## Warning: package 'readxl' was built under R version 4.5.3
dades <- read_excel("whc-sites-2025.xls")

head(dades)
## # A tibble: 6 × 49
##   unique_number id_no rev_bis name_en    name_fr name_es name_ru name_ar name_zh
##           <dbl> <dbl> <chr>   <chr>      <chr>   <chr>   <chr>   <chr>   <chr>  
## 1           230   208 Rev     Cultural … Paysag… Paisaj… Культу… المنظر… 巴米扬山谷的…
## 2           234   211 Rev     Minaret a… Minare… Minare… Минаре… مئذنة … 查姆回教寺院…
## 3          1590   569 Bis     Historic … Centre… Ciudad… Истори… المركز… <NA>   
## 4          1563   570 ter     Butrint    Butrint Butrin… Древни… بوترنت  布特林特……
## 5           111   102 <NA>    Al Qal'a … La Kal… Kalâa … Крепос… قلعة ب… 贝尼•哈玛德…
## 6           198   179 <NA>    Tassili n… Tassil… Tasili… Плато … طاسيلي… 阿杰尔的塔西…
## # ℹ 40 more variables: short_description_en <chr>, short_description_fr <chr>,
## #   short_description_es <chr>, short_description_ru <chr>,
## #   short_description_ar <chr>, short_description_zh <chr>,
## #   justification_en <chr>, justification_fr <chr>, date_inscribed <dbl>,
## #   secondary_dates <chr>, danger <dbl>, date_end <dbl>, danger_list <chr>,
## #   longitude <dbl>, latitude <dbl>, area_hectares <dbl>, C1 <dbl>, C2 <dbl>,
## #   C3 <dbl>, C4 <dbl>, C5 <dbl>, C6 <dbl>, N7 <dbl>, N8 <dbl>, N9 <dbl>, …
names(dades)
##  [1] "unique_number"        "id_no"                "rev_bis"             
##  [4] "name_en"              "name_fr"              "name_es"             
##  [7] "name_ru"              "name_ar"              "name_zh"             
## [10] "short_description_en" "short_description_fr" "short_description_es"
## [13] "short_description_ru" "short_description_ar" "short_description_zh"
## [16] "justification_en"     "justification_fr"     "date_inscribed"      
## [19] "secondary_dates"      "danger"               "date_end"            
## [22] "danger_list"          "longitude"            "latitude"            
## [25] "area_hectares"        "C1"                   "C2"                  
## [28] "C3"                   "C4"                   "C5"                  
## [31] "C6"                   "N7"                   "N8"                  
## [34] "N9"                   "N10"                  "criteria_txt"        
## [37] "category"             "category_short"       "states_name_en"      
## [40] "states_name_fr"       "states_name_es"       "states_name_ru"      
## [43] "states_name_ar"       "states_name_zh"       "region_en"           
## [46] "region_fr"            "iso_code"             "udnp_code"           
## [49] "transboundary"
library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.5.3
## Warning: package 'ggplot2' was built under R version 4.5.3
## Warning: package 'tibble' was built under R version 4.5.3
## Warning: package 'tidyr' was built under R version 4.5.3
## Warning: package 'readr' was built under R version 4.5.3
## Warning: package 'purrr' was built under R version 4.5.3
## Warning: package 'dplyr' was built under R version 4.5.3
## Warning: package 'stringr' was built under R version 4.5.3
## Warning: package 'forcats' was built under R version 4.5.3
## Warning: package 'lubridate' was built under R version 4.5.3
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.2.0     ✔ readr     2.2.0
## ✔ forcats   1.0.1     ✔ stringr   1.6.0
## ✔ ggplot2   4.0.2     ✔ tibble    3.3.1
## ✔ lubridate 1.9.5     ✔ tidyr     1.3.2
## ✔ purrr     1.2.1     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
nrow(dades)
## [1] 1248
dades %>%
  count(category)
## # A tibble: 3 × 2
##   category     n
##   <chr>    <int>
## 1 Cultural   972
## 2 Mixed       41
## 3 Natural    235
dades %>%
  count(states_name_en, sort = TRUE)
## # A tibble: 212 × 2
##    states_name_en                                           n
##    <chr>                                                <int>
##  1 China                                                   59
##  2 Italy                                                   54
##  3 France                                                  47
##  4 Spain                                                   46
##  5 Germany                                                 44
##  6 India                                                   43
##  7 Mexico                                                  36
##  8 United Kingdom of Great Britain and Northern Ireland    32
##  9 Russian Federation                                      29
## 10 Iran (Islamic Republic of)                              28
## # ℹ 202 more rows
dades %>%
  count(date_inscribed)
## # A tibble: 46 × 2
##    date_inscribed     n
##             <dbl> <int>
##  1           1978    12
##  2           1979    45
##  3           1980    27
##  4           1981    26
##  5           1982    24
##  6           1983    29
##  7           1984    22
##  8           1985    30
##  9           1986    29
## 10           1987    41
## # ℹ 36 more rows

Gràfic 1: Països amb més llocs Patrimoni

paisos <- dades %>%
  count(states_name_en, sort = TRUE)

graf.paisos <- ggplot(head(paisos, 10),
                      aes(x = reorder(states_name_en, n),
                          y = n)) +
  geom_col() +
  coord_flip() +
  labs(title = "Països amb més llocs Patrimoni de la Humanitat",
       x = "País",
       y = "Nombre de llocs")

graf.paisos

Aquest gràfic mostra els deu països amb més llocs declarats Patrimoni de la Humanitat.

Gràfic 2: Distribució per categories

graf.categories <- ggplot(dades,
                          aes(x = category,
                              fill = category)) +
  geom_bar() +
  labs(title = "Distribució dels llocs segons la categoria",
       x = "Categoria",
       y = "Nombre de llocs")

graf.categories

Aquest gràfic mostra la distribució dels llocs segons la categoria de patrimoni.

Gràfic 3: Evolució temporal de les inscripcions

evolucio <- dades %>%
  count(date_inscribed)

graf.evolucio <- ggplot(evolucio,
                        aes(x = date_inscribed,
                            y = n)) +
  geom_line() +
  geom_point() +
  labs(title = "Evolució temporal de les inscripcions",
       x = "Any",
       y = "Nombre de llocs inscrits")

graf.evolucio

Aquest gràfic mostra l’evolució temporal dels llocs inscrits a la llista de la UNESCO.

Gràfic interactiu

library(plotly)
## Warning: package 'plotly' was built under R version 4.5.3
## 
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
## 
##     last_plot
## The following object is masked from 'package:stats':
## 
##     filter
## The following object is masked from 'package:graphics':
## 
##     layout
graf.evolucio.int <- plotly::ggplotly(graf.evolucio)

graf.evolucio.int

Mapa 1: Distribució mundial dels llocs

library(maps)
## Warning: package 'maps' was built under R version 4.5.3
## 
## Attaching package: 'maps'
## The following object is masked from 'package:purrr':
## 
##     map
dades.mapa <- dades %>%
  filter(!is.na(longitude),
         !is.na(latitude))

ggplot() +
  borders("world", fill = "white") +
  geom_point(data = dades.mapa,
             aes(x = longitude,
                 y = latitude),
             color = "red",
             size = 1) +
  labs(title = "Distribució mundial dels llocs Patrimoni de la Humanitat",
       x = "Longitud",
       y = "Latitud")
## Warning: `borders()` was deprecated in ggplot2 4.0.0.
## ℹ Please use `annotation_borders()` instead.
## This warning is displayed once per session.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

Aquest mapa mostra la distribució mundial dels llocs Patrimoni de la Humanitat.

Mapa 2: Distribució segons la categoria

ggplot() +
  borders("world", fill = "white") +
  geom_point(data = dades.mapa,
             aes(x = longitude,
                 y = latitude,
                 color = category),
             size = 1) +
  labs(title = "Distribució dels llocs segons la categoria",
       x = "Longitud",
       y = "Latitud")

Aquest mapa permet observar les diferències entre les categories cultural, natural i mixta.

Mapa interactiu

library(leaflet)
## Warning: package 'leaflet' was built under R version 4.5.3
leaflet(dades.mapa) %>%
  addTiles() %>%
  addMarkers(lng = ~longitude,
             lat = ~latitude,
             popup = ~name_en)

Anàlisi de text

library(tidytext)
## Warning: package 'tidytext' was built under R version 4.5.3
textos <- dades %>%
  select(short_description_en)

paraules <- textos %>%
  tidytext::unnest_tokens(word,
                          short_description_en)

vacias <- tidytext::get_stopwords("en")

paraules2 <- paraules %>%
  anti_join(vacias,
            by = "word")

freq.paraules <- paraules2 %>%
  count(word, sort = TRUE)

freq.paraules
## # A tibble: 12,067 × 2
##    word          n
##    <chr>     <int>
##  1 p          2388
##  2 century     750
##  3 site        520
##  4 em          360
##  5 city        346
##  6 built       334
##  7 one         313
##  8 property    287
##  9 landscape   279
## 10 centuries   262
## # ℹ 12,057 more rows

Paraules més freqüents

frequents <- freq.paraules %>%
  top_n(10, n)

ggplot(frequents,
       aes(x = word,
           y = n,
           fill = word)) +
  geom_col(show.legend = FALSE) +
  coord_flip() +
  labs(title = "Paraules més freqüents",
       x = "Paraula",
       y = "Freqüència")

Aquest gràfic mostra les paraules més repetides dins les descripcions breus dels llocs.

Núvol de paraules

library(wordcloud2)
## Warning: package 'wordcloud2' was built under R version 4.5.3
wordcloud2(freq.paraules)

Conclusions

L’anàlisi mostra que els llocs Patrimoni de la Humanitat no es distribueixen de manera uniforme arreu del món. Alguns països concentren molts llocs, mentre que altres tenen una presència menor.

Els gràfics permeten observar la comparació entre països, la distribució per categories i l’evolució temporal de les inscripcions. Els mapes ajuden a veure la distribució geogràfica dels llocs i les diferències entre categories.

Finalment, l’anàlisi textual del camp short_description_en permet identificar les paraules i conceptes més recurrents en les descripcions de la UNESCO.