Mapa bàsic (ggmap)

En aquest apartat aprendrem a col·locar informació en un mapa a partir dels conceptes que hem après a l’assignatura. Necessitarem:

Principalment en aquests exercicis treballarem amb el paquet ggmap, però també amb altres paquets que carreguem a continuació.

#recordeu que els paquets han d'estar prèviament instal·lats 
library(dplyr)
library(ggplot2)
library(ggmap)

El mapa

Dins del paquet ggmap, utilitzarem la funció get_stamenmap() per accedir als mapes. A dins la funció indicarem:

  • Els límits del mapa.
  • La resolució amb zoom.
  • El tipus de mapa que volem visualitzar amb maptype. Hem escollit terrain-background com a opció per defecte. Consulteu altres tipus de mapa amb: ?get_stamenmap.
# Amb la funció get_stamenmap, marquem els límits del mapa
mapa_sicilia <- get_stamenmap(bbox = c(left = 12.450726,
                                       bottom = 36.717078,
                                       right = 15.376409,
                                       top = 38.228851),
                                       zoom = 9, #marquem la resolució del mapa
                                       maptype = "terrain-background")

En aquest cas, hem introduït les coordenades de l’illa de Sicília:

ggmap(mapa_sicilia) #Ja podem fer una primera visualització del mapa

Exercici 1: Definiu la visualització d’un mapa on hi figuri un país.

  • Podeu obtenir fàcilment les coordenades clicant en un punt del mapa a Google Maps. Si feu clic de manera sostinguda us apareixerà la informació de la longitud i la latitud.
  • Canvieu el tipus de mapa. Per exemple, “watercolor” o “toner-hybrid.” Podeu consultar-los tots a ?get_stamenmap.

COMPTE AMB EL ZOOM!: Comença primer amb una resolució baixa (per exemple, zoom = 6) per assegurar-te que no estiguis carregant un mapa amb massa resolució. Després augmenta la resolució a 7, 8, 9 … per anar guanyant nitidesa. Com més resolució, més lent anirà el teu ordinador al carregar el mapa.

Les coordenades

Combinant els paquets ggmap i ggplot2 podem representar un punt sobre el mapa. Definirem les coordenades (x,y) del punt i el color i la mida del punt.

#Posar un punt al mapa és així de fàcil
ggmap(mapa_sicilia) +
  geom_point(aes(x = 13.56, y = 37.4034), #proveu de canviar-ho per unes altres coordenades
             col = "red", size = 2) #proveu de canviar el color i la mida del punt

Exercici 2: Utilitzant el mapa que has creat anteriorment de un país, introdueix un punt al mapa. Canvia el color i la mida.

El marc de dades

Per vincular un marc de dades al mapa, haurem de seguir l’estructura que veiem a continuació:

  1. A objecte_mapa indiquem l’objecte que hem definit com a mapa.
  2. A longitud i latitud indiquem les coordenades.
  3. A df indiquem el nom del marc de dades.
  4. Finalment, indicarem geom_point() amb els arguments corresponents a dins com el color, la mida, etc.

AVIS! Aquest codi és un exemple no reproduible.

ggmap(objecte_mapa, #objecte que porta la informació del mapa
      base_layer = ggplot(aes(x = longitud, y = latitud), #nom que prenen x i y al marc de dades
                          data = df)) + #nom del marc de dades
      geom_point(propietats del punt) #geometria

A continuació definirem el marc de dades. Podem utilitzar funcions com tribble() o data.frame(). Hi introduirem:

  • Quatre columnes, dues corresponents a les coordenades i dues corresponents als atributs (lloc i habitants).
  • Tres observacions, corresponents a tres localitzacions.
  • Amb la funció tribble(), haurem d’indicar primer les columnes amb el símbol ~ abans de cada nom. A continuació, indicarem els valors de cada observació, tot separat per comes.
#Creem un marc de dades amb la funció tribble
sic_data <- tribble(~lon,  ~lat,    ~lloc,   ~habitants,
                    13.300021, 37.812647, "Corleone", 11387,
                    13.377162, 37.679849, "Palazzo Adriano", 2332,
                    13.361078, 38.127448, "Palerm", 1483471 )
sic_data #Visualitzem el marc de dades
## # A tibble: 3 × 4
##     lon   lat lloc            habitants
##   <dbl> <dbl> <chr>               <dbl>
## 1  13.3  37.8 Corleone            11387
## 2  13.4  37.7 Palazzo Adriano      2332
## 3  13.4  38.1 Palerm            1483471

Tot junt

Finalment, seguint el patró que hem establert prèviament, introduïm els elements que necessitem:

  • El nom del mapa mapa_sicilia.
  • En nom que hem donat a les coordenades: lon per les x i lat per les y
  • El nom del marc de dades: sic_data.
  • Les geometries amb els seus arguments.
    • Amb geom_point() indiquem que el color del punt variï segons el lloc i que la mida del punt variï segons el nombre d’habitants.
    • Amb geom_text() hem situat una etiqueta de text per veure el nom de cada lloc.
ggmap(mapa_sicilia,
      base_layer = ggplot(aes(x = lon, y = lat),
                          data = sic_data)) +
  geom_point(aes(col = lloc, size = habitants), show.legend = FALSE) +
  geom_text(aes(label = lloc), fontface = "bold", 
            size = 3, vjust = -.8)

EXERCICI FINAL: Construeix un mapa d’un territori concret del món i crea un marc de dades amb quatre observacions i dos atributs. Els atributs han d’estar basats en dades reals (hauràs d’indicar la font d’on has obtingut les dades). Crea una visualització que permeti observar els dos atributs de les quatre observacions.

Next