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 escollitterrain-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
.
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
El marc de dades
Per vincular un marc de dades al mapa, haurem de seguir l’estructura que veiem a continuació:
- A
objecte_mapa
indiquem l’objecte que hem definit com a mapa. - A
longitud
ilatitud
indiquem les coordenades. - A
df
indiquem el nom del marc de dades. - 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 ilat
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.
- Amb
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)