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

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


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.


@ 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 ...
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.