Comment créer une carte du Danemark avec ggmap

14

J'ai installé les deux packages suivants:

library(ggmap)
library(maps)

J'ai trouvé du code en ligne pour créer une carte du monde (voir ci-dessous). Comment zoomer l'intrigue au niveau d'un pays? Par exemple, le Danemark .

ggplot()+
  borders("world", colour="gray50", fill="gray50")

Entrez la description de l'image ici

David
la source

Réponses:

18

Si nous regardons ?borderset, pour en savoir plus ?map, nous voyons que nous pouvons utiliser leregions argument:

ggplot() + borders(regions = "Denmark", colour = "gray50", fill = "gray50") 

entrez la description de l'image ici


la source
1
En outre, un très beau paquet pour les cartes est le dépliant: iel <- leaflet() %>% setView(lat = 50.85045, lng = 4.34878, zoom=5) %>% addTiles(group="OSM")
@Julius Vainora: Merci. Puis-je ajouter des couches à ce tracé? Par exemple, si je trouve un ensemble de données avec des "limites d'état"?
2
@David, oui, des couches peuvent être ajoutées, par exemple + geom_point(data = data.frame(x = 12, y = 56), aes(x = x, y = y))ajoute un point.
1
Lorsque vous utilisez des cartes, vous souhaiterez peut-être ajouter coord_cartesian(), de sorte que l'échelle des axes x et y correspondent.
JAD
10

Obtenez les limites du Danemark en lat-long et utilisez coord_fixed:

ggplot() + borders("world", colour="gray50", fill="gray50") + coord_fixed(xlim=c(7, 12), ylim=c(52, 58))

Entrez la description de l'image ici

Vous pouvez obtenir les limites du mappackage:

> map("world", "Denmark", plot=FALSE)$range
[1]  8.121484 15.137110 54.628857 57.736916

Et vous voudrez peut-être les développer un peu pour un espacement plus agréable et plus de contexte.

Spacedman
la source
@ quand je cours map("world","Denmark",plot=FALSE)$rangeje reçois NULL?
Impair. Produit map("world","Denmark")une carte du Danemark? Et la "France" ou la "Belgique"? Utilise-t-il des noms de pays locaux ("Danmark")? Dessine map("world")une carte? map("world",plot=FALSE)$namesRetourne- t-il un vecteur de noms de pays / région? Si ceux-ci ne fonctionnent pas, c'est très étrange et vous devriez demander un nouveau Q ou signaler un bug ...
Spacedman
@ Spacedan: Aucun d'entre eux ne fonctionne ni NULLerreur. Mais je peux créer les tracés dans les réponses ...
1
Démarrez une nouvelle session R propre, faites library(maps), puis essayez? Vous avez peut-être quelque chose qui masque la maps::mapfonction. Probablement purrr::map? Ne pas utiliser library(tidyverse).
Spacedman
4
@ Spacedman: Je pense que ça va si j'utilise maps :: map. Peut-être qu'il pensait que la fonction de carte du paquet purrr ...