Jak stworzyć mapę Danii za pomocą ggmap

14

Zainstalowałem następujące dwa pakiety:

library(ggmap)
library(maps)

Znalazłem kod online, aby utworzyć mapę świata (patrz poniżej). Jak powiększyć fabułę na poziomie kraju? Na przykład Dania .

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

Wpisz opis zdjęcia tutaj

David
źródło

Odpowiedzi:

18

Jeśli spojrzymy na ?bordersi, więcej ?map, zobaczymy, że możemy użyć regionsargumentu:

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

wprowadź opis zdjęcia tutaj


źródło
1
Również bardzo pięknym pakietem map jest ulotka: tj.l <- leaflet() %>% setView(lat = 50.85045, lng = 4.34878, zoom=5) %>% addTiles(group="OSM")
@Jiusius Vainora: Dzięki. Czy mogę dodać warstwy do tego wykresu? Na przykład, jeśli znajdę zestaw danych z „granicami stanu”?
2
@David, tak, warstwy można dodawać, na przykład + geom_point(data = data.frame(x = 12, y = 56), aes(x = x, y = y))dodaje punkt.
1
Podczas korzystania z map warto dodać coord_cartesian(), aby dopasować skalę osi xi y.
JAD
10

Zdobądź granice Danii w najdłuższym czasie i użyj coord_fixed:

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

Wpisz opis zdjęcia tutaj

Możesz uzyskać granice z mappakietu:

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

Możesz też nieco je rozszerzyć, aby uzyskać lepsze odstępy i większy kontekst.

Spacedman
źródło
@ kiedy biegam map("world","Denmark",plot=FALSE)$rangedostaję NULL?
Dziwny. Czy map("world","Denmark")produkuje mapę Danii? Co z „Francją” lub „Belgią”? Czy używa lokalnych nazw krajów („Dania”)? Czy map("world")rysuje mapę? Czy map("world",plot=FALSE)$nameszwraca wektor nazw krajów / regionów? Jeśli te nie działają, to jest bardzo dziwne i powinieneś zadać nowe pytanie lub zgłosić błąd ...
Spacedman
@ Spacedan: Żaden z nich nie działa albo nie występuje NULLbłąd. Ale mogę utworzyć fabułę w odpowiedziach ...
1
Rozpocznij nową czystą sesję R library(maps), a następnie spróbuj? Może masz coś maskującego tę maps::mapfunkcję. Prawdopodobnie purrr::map? Nie używać library(tidyverse).
Spacedman
4
@ Spacedman: Myślę, że jest w porządku, jeśli używam map :: map. Może myślał, że funkcja mapy pochodzi z pakietu mruczenia ...