Como criar um mapa da Dinamarca com o ggmap

14

Eu instalei os dois pacotes a seguir:

library(ggmap)
library(maps)

Encontrei código online para criar um mapa do mundo (veja abaixo). Como faço para ampliar a plotagem no nível do país? Por exemplo, Dinamarca .

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

Digite a descrição da imagem aqui

David
fonte

Respostas:

18

Se olharmos ?borderse, para mais informações ?map, veremos que podemos usar o regionsargumento:

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

insira a descrição da imagem aqui


fonte
1
Além disso, um pacote muito bonito para mapas é o folheto: iel <- leaflet() %>% setView(lat = 50.85045, lng = 4.34878, zoom=5) %>% addTiles(group="OSM")
@Julius Vainora: Obrigado. Posso adicionar camadas a esse gráfico? Por exemplo, se eu encontrar um conjunto de dados com "limites de estado"?
2
@ David, sim, camadas podem ser adicionadas, por exemplo, + geom_point(data = data.frame(x = 12, y = 56), aes(x = x, y = y))adiciona um ponto.
1
Ao usar mapas, você pode adicionar coord_cartesian(), para que a escala dos eixos xe y coincidam.
JAD
10

Obtenha os limites da Dinamarca em um longo período e use coord_fixed:

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

Digite a descrição da imagem aqui

Você pode obter os limites do mappacote:

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

E você pode querer expandir isso um pouco para obter um espaçamento melhor e mais contexto.

Spacedman
fonte
@ quando eu corro map("world","Denmark",plot=FALSE)$rangeeu recebo NULL?
Ímpar. Será que map("world","Denmark")produzir um mapa da Dinamarca? E quanto a "França" ou "Bélgica"? Está usando nomes de países locais ("Danmark")? Desenha map("world")um mapa? Retorna map("world",plot=FALSE)$namesum vetor de nomes de países / regiões? Se aqueles não funcionam, então isso é muito estranho e você deve perguntar a um novo Q ou relatar um bug ...
Spacedman
@ Spacedan: Nenhum deles funciona NULLou com erro. Mas eu posso criar as parcelas nas respostas ...
1
Inicie uma nova sessão R limpa, faça library(maps)e tente? Talvez você tenha algo mascarando a maps::mapfunção. Provavelmente purrr::map? Não use library(tidyverse).
Spacedman
4
@ Spacedman: Eu acho que está tudo bem se eu usar maps :: map. Talvez pensou que a função de mapa do pacote purrr ...