3  On es produeixen més conflictes internacionals?

3.1 Introducció

On es produeixen més conflictes internacionals? Per respondre a aquesta pregunta, necessitem mapejar els conflictes que s’estan produint en el món. I això ens ho permetrà fer una una base de dades que ofereixi dades sobre violència organitzada. Probablement, la més reconeguda a Europa és la que allotja l’Uppsala Conflict Data Program (UCDP), un programa d’investigació orientat a la recol·lecció de dades i a la recerca quantitativa de conflictes armats.

Les bases de dades que publica l’UCDP es poden dividir en dos tipus. En primer lloc, hi ha un grup de dades que es publiquen desagregades a nivell d’esdeveniment i es publiquen amb relativa freqüència: són la Candidate Events Dataset (CED) i la Georeferenced Event Dataset (GED). En segon lloc, hi ha un segon grup de dades que es publiquen agregades a nivell de conflicte, que es publiquen anualment, i proporcionen informació dels conflictes per estat i any. La més coneguda és la UCDP-PRIO, que segurament haurem vist en moltes estadístiques sobre conflictes que apareixen als mitjans de comunicació i informes com els PRIO Annual Reports.

En aquest apartat, utilitzarem dades del primer grup, ja que ens permetrà visualitzar els esdeveniments de conflicte que s’han produït en el darrer mes de dades. Per a realitzar l’activitat:

  1. Necessitarem eines cartogràfiques digitals. En coherència amb altres assignatures del grau, utilitzarem el programa R. Això ens permetrà escollir un tipus de mapa i l’escala amb què ho volem representar.

  2. Necessitarem la informació de conflictes armats sistematitzada en una base de dades. Aquesta base de dades és la CED (Hegre et al. 2020) d’UCDP, que proporciona informació sobre els esdeveniments de conflictes bruts que s’han produït un mes determinat. La mateixa base de dades té informació geogràfica sobre les coordenades on s’han produït els esdeveniments d’un determinat conflicte.

  3. També necessitarem com interpretar la base de dades. Per això farem ús del llibre de codis i d’informació general sobre els conflictes, més qualitativa, que podrem obtenir de la mateixa web d’UCDP i d’altres págines web.

Exr. 3.1 (Uppsala Conflict Data Program) Fes una primera ullada a la pàgina web Uppsala Conflict Data Program. Para especial atenció a:

  • Apartat de descàrrega (Downloads).
  • Informació general sobre el programa de recerca (About).
  • Busca un conflicte al mapa de la pàgina principal i selecciona’l per consultar més informació. Entraràs a una nova pàgina on veuràs la narrativa del conflicte, entre altres dades (per exemple, el conflicte Lashkar-e-Taiba vs. Civilians.

3.2 El mapa

Les eines cartogràfiques digitals ens les proporciona el programa R. Abans de continuar aquest apartat, és necessari haver-se familiaritzat amb el programa RStudio. Per això és necessari consultar Guia d’RStudio prèviament.

Exr. 3.2 (Guia RStudio) Segueix la Guia d’RStudio. Un cop hagis llegit la guia i fet tots els exercicis, fes el següent:

  • Entra a RStudio.
  • A la carpeta de l’assignatura, crea un projecte de nom UCDP.
  • Un cop creat el projecte, obre un R Script i carrega els paquets que necessitaràs per fer l’activitat:
Has instal·lat els paquets?

Recorda que per utilitzar un paquet, aquest ha d’estar prèviament instal·lat a RStudio. Si no has instal·lat algun d’aquests paquets, ara és el moment de fer-ho:

install.packages(c("dplyr", "readr", 
                   "ggplot2", "leaflet"))

Un dels paquets que hem de tenir carregats per aquesta activitat és leaflet1, un paquet que ens permet crear mapes. El paquet conté la funció leaflet(), que és la base per construir mapes. Utilitzarem el codi que veiem a continuació per crear un mapa, que visualitzarem al Viewer de RStudio. A dins de la funció hi indicarem:

  • 1 Per més informació de com utilitzar leaflet podeu consultar leaflet: Create Interactive Web Maps with the JavaScript Leaflet Library (Cheng, Karambelkar, and Xie 2022)

    • Les coordenades del mapa amb els arguments lng (longitud) i lat (latitud).
    • L’escala del mapa amb l’argument zoom.
    leaflet() |> 
      addTiles() |> 
      setView(lng = 138.727424, 
              lat = 35.362465, 
              zoom = 11)

    També es pot canviar el mapa base sobre el qual s’està operant. Amb leaflet podem conformar-nos amb el mapa que tenim per defecte o bé seleccionar-ne un altre mitjançant la funció addProviderTiles(), que posarem en el codi en substitució de addTiles(). Hi ha varis proveïdors que poden proporcionar aquest mapa base. En aquest enllaç teniu vàries desenes de mapes per escollir. Els tipus de mapes que es poden escollir estan emmagatzemats a l’objecte providers, que podem consultar si teclegem names(providers).

    leaflet() |> 
      addProviderTiles(providers$Esri.NatGeoWorldMap) |> 
      setView(lng = 138.727424, 
              lat = 35.362465, 
              zoom = 11)

    Exr. 3.3 (Visualitza una zona) Crea el teu propi mapa amb els tres elements següents:

    • Ubica la longitud i la latitud en alguna zona del Sahel.
    • D’acord amb la classificació de Flint (2022), utilitza una escala subestatal.
    • Selecciona un dels tipus de mapa que tens disponible a names(providers).

    3.3 Les dades

    La base de dades CED conté informació de tots els esdeveniments relacionats amb violència armada que s’han produït al món en l’últim mes. L’UCDP actualitza les dades aproximadament a meitats de mes pel qual, per exemple, cap al 15 d’octubre de 2023 apareixeran les dades CED del mes de setembre de 2023. Per descarregar les dades del darrer mes, anirem a l’apartat de descàrregues de la web d’UCDP i baixarem l’arxiu CSV (marcat a la imatge següent en vermell) de la CED.

    Si premem a l’icona CSV descarregarem un arxiu que es dirà GEDEvent_vXX_X_X.csv, per exemple:

    • GEDEvent_v23_0_4.csv

    Ens assegurarem que l’arxiu que descarreguem el posem a la carpeta del projecte, de manera que el podem visualitzar des de la finestra ‘Files’ d’RStudio. A continuació, crearem un objecte d’R anomenat ged que contingui les dades de l’arxiu.

    Exr. 3.4 (Carrega l’arxiu GED) Modifica el codi següent i introdueix la informació de l’arxiu correcta. Assegura’t que l’objecte ged s’ha creat correctament al Global Environment.

    ged <- read_csv("GEDEvent_v23_0_4.csv")

    A continuació farem una ullada a l’objecte ged. El marc de dades que veiem en aquest document correspon als esdeveniments de conflicte que es van produir durant l’abril de 2023. Per tant, s’ha de tenir en compte que aquestes dades no coincidiran amb les que apareguin a RStudio quan s’intenti replicar l’exemple. El codi d’R, no obstant, servirà igual.

    Primer introduirem ged, on tindrem una vista general de les dades. Fixem-nos, per exemple, que l’abril de 2023 es van registrar 1.706 conflictes. El marc de dades té 49 variables. Detectem una variable year on, efectivament, veiem que totes les observacions s’han registrat el 2023. I detectem que al primer conflicte observat li han assignat el codi 360.

    ged
    # A tibble: 1,706 × 49
           id relid   year active_year code_status type_of_violence conflict_dset_id
        <dbl> <chr>  <dbl> <lgl>       <chr>                  <dbl> <chr>           
     1 469588 BFO-2…  2023 TRUE        Clear                      1 360             
     2 469603 BFO-2…  2023 TRUE        Check dyad                 1 360             
     3 469604 BFO-2…  2023 TRUE        Clear                      1 360             
     4 469622 RUS-2…  2023 TRUE        Clear                      1 13243           
     5 469677 PHI-2…  2023 FALSE       Clear                      1 14275           
     6 469742 BRA-2…  2023 TRUE        Clear                      2 15142           
     7 469845 BRA-2…  2023 TRUE        Clear                      2 15142           
     8 469846 BRA-2…  2023 TRUE        Clear                      2 15142           
     9 469849 BRA-2…  2023 TRUE        Clear                      2 15142           
    10 469859 AFG-2…  2023 TRUE        Clear                      1 13637           
    # ℹ 1,696 more rows
    # ℹ 42 more variables: conflict_new_id <dbl>, conflict_name <chr>,
    #   dyad_dset_id <chr>, dyad_new_id <dbl>, dyad_name <chr>,
    #   side_a_dset_id <chr>, side_a_new_id <dbl>, side_a <chr>,
    #   side_b_dset_id <chr>, side_b_new_id <dbl>, side_b <chr>,
    #   number_of_sources <dbl>, source_article <chr>, source_office <chr>,
    #   source_date <chr>, source_headline <chr>, source_original <chr>, …

    Exr. 3.5 (Examina el teu marc de dades) Repeteix l’operació amb el teu marc de dades i respon a les següents preguntes:

    • Quantes files i quantes columnes té el teu marc de dades?
    • En quin any (year) s’han registrat les observacions?
    • Quin és el codi (id) del primer conflicte observat?

    Anem a veure el mateix marc de dades més a fons amb glimpse(). Aquesta funció permet fer una ullada ràpida a totes les variables i identifica quines són les primeres observacions de cada variable2.

  • 2 Alternativament, també podem fer servir View().

  • glimpse(ged)
    Rows: 1,706
    Columns: 49
    $ id                <dbl> 469588, 469603, 469604, 469622, 469677, 469742, 4698…
    $ relid             <chr> "BFO-2023-1-15175-54", "BFO-2023-1-15175-57.1", "BFO…
    $ year              <dbl> 2023, 2023, 2023, 2023, 2023, 2023, 2023, 2023, 2023…
    $ active_year       <lgl> TRUE, TRUE, TRUE, TRUE, FALSE, TRUE, TRUE, TRUE, TRU…
    $ code_status       <chr> "Clear", "Check dyad", "Clear", "Clear", "Clear", "C…
    $ type_of_violence  <dbl> 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1…
    $ conflict_dset_id  <chr> "360", "360", "360", "13243", "14275", "15142", "151…
    $ conflict_new_id   <dbl> 360, 360, 360, 13243, 14275, 13972, 13972, 13972, 13…
    $ conflict_name     <chr> "Burkina Faso: Government", "Burkina Faso: Governmen…
    $ dyad_dset_id      <chr> "15175", "15175", "15175", "14117", "15473", "15142"…
    $ dyad_new_id       <dbl> 15175, 15175, 15175, 14117, 15473, 15142, 15142, 151…
    $ dyad_name         <chr> "Government of Burkina Faso - JNIM", "Government of …
    $ side_a_dset_id    <chr> "78", "78", "78", "57", "154", "772", "772", "772", …
    $ side_a_new_id     <dbl> 78, 78, 78, 57, 154, 772, 772, 772, 772, 130, 130, 1…
    $ side_a            <chr> "Government of Burkina Faso", "Government of Burkina…
    $ side_b_dset_id    <chr> "6716", "6716", "6716", "61", "234", "3176", "3176",…
    $ side_b_new_id     <dbl> 6716, 6716, 6716, 61, 234, 3176, 3176, 3176, 3176, 2…
    $ side_b            <chr> "JNIM", "JNIM", "JNIM", "Government of Ukraine", "IS…
    $ number_of_sources <dbl> 1, 2, 2, 2, 2, 1, 1, 1, 1, 8, 6, 7, 10, 9, 4, 1, 2, …
    $ source_article    <chr> "\"@AlerteTemoin,2023-04-03,Zondoma \"", "\"@Danoumi…
    $ source_office     <chr> "@AlerteTemoin", "@Danoumis_Traore;Sahel Intelligenc…
    $ source_date       <chr> "2023-04-03", "2023-04-03;2023-04-04", "2023-04-04;2…
    $ source_headline   <chr> "Zondoma", "#Burkina;Burkina Faso: several terrorist…
    $ source_original   <chr> NA, "Army", NA, "Daily Kos, Reporting from Ukraine",…
    $ where_prec        <dbl> 1, 2, 1, 1, 4, 2, 1, 1, 2, 1, 1, 1, 3, 2, 5, 5, 1, 1…
    $ where_coordinates <chr> "Bougounam village", "Soum-Bellah village", "Tawori …
    $ where_description <chr> "Bougounam, Zondoma", "Soum Bella (Sahel), area of",…
    $ adm_1             <chr> "Nord region", "Sahel region", "Est region", "Donets…
    $ adm_2             <chr> "Zondoma province", "Soum province", "Tapoa province…
    $ latitude          <dbl> 13.36259, 14.76129, 12.04667, 48.59244, 7.90000, -10…
    $ longitude         <dbl> -2.39254, -1.11884, 1.40688, 37.99993, 124.35000, -3…
    $ geom_wkt          <chr> "POINT (-2.39254 13.36259)", "POINT (-1.11884 14.761…
    $ priogrid_gid      <dbl> 148676, 150838, 147243, 199876, 141009, 114766, 1161…
    $ country           <chr> "Burkina Faso", "Burkina Faso", "Burkina Faso", "Ukr…
    $ country_id        <dbl> 439, 439, 439, 369, 840, 140, 140, 140, 140, 700, 70…
    $ region            <chr> "Africa", "Africa", "Africa", "Europe", "Asia", "Ame…
    $ event_clarity     <dbl> 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1…
    $ date_prec         <dbl> 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1…
    $ date_start        <dttm> 2023-04-02, 2023-04-03, 2023-04-03, 2023-04-04, 202…
    $ date_end          <dttm> 2023-04-02, 2023-04-03, 2023-04-03, 2023-04-04, 202…
    $ deaths_a          <dbl> 0, 0, 0, 8, 0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 4, 0, 0, 0…
    $ deaths_b          <dbl> 7, 10, 0, 0, 3, 0, 0, 0, 0, 6, 2, 1, 6, 2, 0, 24, 2,…
    $ deaths_civilians  <dbl> 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0…
    $ deaths_unknown    <dbl> 0, 0, 0, 0, 0, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1…
    $ best              <dbl> 8, 10, 0, 8, 3, 2, 1, 1, 1, 7, 2, 1, 6, 6, 4, 24, 2,…
    $ high              <dbl> 8, 10, 1, 10, 3, 2, 1, 1, 1, 14, 2, 1, 6, 16, 4, 24,…
    $ low               <dbl> 8, 10, 0, 2, 3, 2, 1, 1, 1, 3, 0, 1, 6, 2, 4, 24, 2,…
    $ gwnoa             <dbl> 439, 439, 439, 365, 840, NA, NA, NA, NA, 700, 700, 7…
    $ gwnob             <dbl> NA, NA, NA, 369, NA, NA, NA, NA, NA, NA, NA, NA, NA,…

    De nou, recorda que la informació d’aquest exemple no coincidirà amb el marc de dades que estàs reproduint en el teu ordinador, perquè aquest exemple és d’abril de 2023, i tu estaràs treballant amb unes dades més noves. Seguint amb l’exemple que es detalla amb el resultat del codi anterior, fixem-nos amb alguns detalls3.

  • 3 La variable priogrid_gid conté les dades en format ràster.

    • La variable conflict_name sembla que conté el nom del conflicte. La primera observació s’ha codificat com a “Burkina Faso: Government”.
    • Si anem tirant avall, trobem que aquest primer conflicte del marc de dades registra un esdeveniment amb violència que involucrava el govern de Burkina Faso (side_a) i JNIM (side_b), que deduïm que deu ser un grup armat.
    • El conflicte es va produir al poble de Bougounam (where_coordinates i where_description), a la província de Zondoma (adm_2).
    • Les coordenades són latitud 13.362590 (latitude) i longitud -2.39254 (longitud). Entrarem a Google Maps i posarem al buscador “13.362590 -2.39254” (ordre invers) per veure el lloc exacte.
    • Cap al final del marc de dades, veiem que aquest esdeveniment de violència armada no va causar cap mort al govern de Burkina Faso (deaths_a), va causar 7 morts a JNIM (deaths_b) i va causar la mort d’un civil (deaths_civilians). Els codificacions d’UCDP generen tres estimacions de morts: low és una estimació a la baixa, high és una estimació a l’alça i best és l’estimació més fiable. En aquest cas, l’estimació de morts és exacta, ja que els codificacions d’UCDP saben del cert que es van produir 8 morts (no a tots ens esdeveniments les estimacions millor, alta i baixa coincideixen).

    Exr. 3.6 (Examina el teu marc de dades) Repeteix l’operació amb el teu marc de dades i respon a les següents preguntes:

    • Quin és el nom del primer conflicte que apareix a les dades?
    • Quines eren les dues parts involucrades en el conflicte?
    • A on es va produir l’esdeveniment?
    • Quantes baixes va causar l’esdeveniment?

    3.4 El llibre de codis

    Una explicació molt més precisa de les dades que tenim ens la donarà el llibre de codis. El llibre de codis és un document annex a una base de dades que conté la informació essencial per interpretar les dades que conté. Normalment, a dins el llibre de codis hi trobem una introducció amb una explicació general de què mesuren les dades i una descripció de les variables.

    A la web de UCDP, anirem a l’apartat de descàrregues i baixarem el llibre de codis de la CED.

    Si obrim el PDF del llibre de codis i anem a la segona pràctica, veurem un índex del seu contingut:

    • Les definicions (pàgina 3-4 i Apèndix I) són un element importantíssim en qualsevol base de dades de qualitat. En l’apartat Definitions s’explica per exemple que l’esdeveniment és la unitat d’observació del conjunt de dades, definit com a “an individual incident (phenomenon) of lethal violence occurring at a given time and place”. Per tant, podem esperar que cada una de les 1.704 files contingui un episodi de violència letal ocurreguda en un lloc i un moment concret del temps 4.

    • A partir de la pàgina 5 comença l’apartat Variables in the UCDP Candidate dataset, on es descriuen totes les variables de la base de dades. Si el llibre de codis està ben fet, la llista de variables que observem al PDF hauria de coincidir amb la llista de variables que hem vist anteriorment mitjançant la funció glimpse().

    • Tots els apartats del llibre de codis són interessants. A Data Collection Methods s’explica quines fonts d’informació s’utilitzen els codificadors de l’UCDP a l’hora de recollir dades dels esdeveniments.

  • 4 Concretament, un esdeveniment és definit com: “An incident where armed force was used by an organised actor against another organized actor, or against civilians, resulting in at least 1 direct death at a specific location and a specific date”.

  • Exr. 3.7 (Llibre de codis) A dins del llibre de codis, mira l’apartat Variables in the UCDP Candidate dataset:

    • Quines categories pot adoptar la variable region?
    • Com està definida exactament la variable adm1?
    • Què hauríem d’esperar trobar en els valors de la variable source_original?

    3.5 Explorar les dades

    Ara que ja tenim a mà les dades i el llibre de codis, anem a explorar-ho més a fons. Per això, en aquest apartat coneixerem una mica més a fons les funcions unique(), sort() i count(). La funció unique() ens permet saber quines categories úniques conté una variable. Combinada amb sort(), veiem el llistat ordenat per ordre alfabètic. La funció count(), per la seva banda, ens compta quantes vegades està repetida una categoria en una variable determinada. Anem a veure alguns exemples de com aplicar aquestes funcions al marc de dades ged:

    • Quins conflictes diferents tenim a la base de dades?
    sort(unique(ged$conflict_name))
    • Quines divisions administratives diferents tenim a la base de dades?
    sort(unique(ged$adm_1))
    • A quins països han succeït més esdeveniments?
    count(ged, country, sort = TRUE)

    Exr. 3.8 (Exploració de les dades) Utilitza els codis anteriors per respondre preguntes sobre les dades que t’has descarregat. Addicionalment, intenta modificar els codis per respondre a les següents preguntes:

    • Quines localitzacions diferents tenim a la base de dades? (variable where_coordinates)
    • A quins continents han succeit més esdeveniments? (variable continent)

    3.6 Mapejar un conflicte internacional

    Anem a agrupar tota la informació que hem anat acumulant al llarg dels darrers apartats per mapejar un conflicte internacional. En primer lloc mirarem de mapejar tots els esdeveniments que es van produir en el món en el mes que hem agafat dades. En el cas d’aquest exemple, veurem els conflictes d’abril de 2023.

    • Abans de la funció leaflet(), introduïm el nom de la base de dades ged.
    • Especifiquem una nova funció, addCircleMarkers(), i com a arguments indicarem als arguments lng i lat el nom dels vectors on es troben les coordenades.
    ged |> 
      leaflet() |> 
      addTiles() |> 
      addCircleMarkers(lng = ~longitude, 
                       lat = ~latitude)

    Anem a concretar una mica més el mapa. Amb les funcions que hem conegut anteriorment, hem obtingut una llista dels conflictes que tenim a la base de dades. Per exemple, si a la variable conflict_name tenim un conflicte que s’anomena "Turkey: Kurdistan", podem reproduir-lo al mapa.

    ged |> 
      filter(conflict_name == "Turkey: Kurdistan") |> 
      leaflet() |> 
      addTiles() |> 
      addCircleMarkers(lng = ~longitude, 
                       lat = ~latitude)

    A continuació, veurem algunes de les opciones que es poden introduir en el mapa:

    • Amb setView(), es poden modificar les coordenades i l’escala del mapa.
    • Amb addProviderTiles(), es pot modificar el tipus de mapa.
    • A dins de addCircleMarkers(), es pot especificar la mida dels punts, el color i si hi volem vora.
    ged |> 
      filter(conflict_name == "Turkey: Kurdistan") |> 
      leaflet() |> 
      setView(lng = 38.727424, 
              lat = 35.362465, 
              zoom = 6) |> 
      addProviderTiles(providers$Esri.NatGeoWorldMap) |> 
      addCircleMarkers(lng = ~longitude, 
                       lat = ~latitude,
                       radius = 5,
                       stroke = T,
                       color = "black")

    Exr. 3.9 (Escull un conflicte) Busca un conflicte que aparegui a la teva base de dades i reprodueix-lo al mapa. Pots fer-ho de dues maneres:

    1. Replicant el codi anterior i canviant el nom del conflicte conflict_name i ajustant l’escala del mapa per tal que es pugui visualitzar correctament.

    2. També pots optar per utilitzar altres paràmetres per buscar un conflicte. Per exemple, podríem mirar quins conflictes s’han produït en un país determinat.

    • Al codi, substituirem conflict_name per country.
    • Substituirem Turkey: Kurdistan pel nom del país en qüestió.
    • Repetirem tot el procediment.

    A continuació es mostren alguna de les variacions més avançades que es pot fer amb el paquet leaflet.

    En el primer exemple, es vol saber les baixes estimades (best) existents en un conflicte determinat (conflict_name):

    1. S’ha creat un nou objecte ged_confl on només hi ha les dades del conflicte que es vol observar.
    2. S’ha guardat a l’objecte pal_num la paleta de colors de la variable que es vol observar (best)5.
    3. S’ha definit el tipus de mapa Esri.NatGeoWorldMap.
  • 5 Enlloc de “viridis”, es pot canviar el color de la paleta per “magma”, “inferno”, o “plasma”.

  • ged_confl <- ged |> 
      filter(conflict_name == "Turkey: Kurdistan")
    pal_num <- colorNumeric(palette = "viridis", 
                            domain = ged_confl$best, 
                            reverse = TRUE)
    ged_confl |> 
      leaflet() |> 
      addProviderTiles(providers$Esri.NatGeoWorldMap) |> 
      addCircleMarkers(lng = ~longitude, 
                       lat = ~latitude,
                       popup = ~best,                   
                       color = ~pal_num(best),
                       label = ~best) |> 
      addLegend(pal = pal_num, #paleta de colors
                values = c(min(ged_confl$best):max(ged_confl$best)), #valor mínim i màxim
                position = "bottomleft", #posició de la llegenda
                title = "Baixes estimades", #títol
                opacity = 0.8) #transparència de la llegenda

    En el segon exemple, es vol saber els conflictes (conflict_name) existents en un país (country) determinat:

    1. S’ha creat un nou objecte ged_ctr on només hi ha les dades del país que es vol observar.
    2. S’ha guardat a l’objecte pal_fact la paleta de colors de la variable que es vol observar (conflict_name)6.
    3. S’ha definit el tipus de mapa CartoDB.Voyager.
  • 6 Es poden veure altres colors de paleta en aquesta web.

  • ged_ctr <- ged |> 
      filter(country == "Cameroon")
    pal_fact <- colorFactor(palette = "Dark2", domain = ged_ctr$conflict_name)
    
    ged_ctr |> 
      leaflet() |> 
      addProviderTiles(providers$CartoDB.Voyager) |> 
      addCircleMarkers(lng = ~longitude, 
                       lat = ~latitude,
                       popup = ~conflict_name,                   
                       color = ~pal_fact(conflict_name),
                       label = ~conflict_name) |> 
      addLegend(position = "bottomright", pal = pal_fact,
                values = c(unique(ged_ctr$conflict_name)),
                opacity = 0.6)

    3.7 Aprendre més

    Si vols practicar la creació de mapes amb altres paquets d’R, altres bases de dades o altres geometries, pots provar amb els següents exercicis: