So erstellen Sie eine Karte von Dänemark mit ggmap

13

Ich habe die folgenden zwei Pakete installiert:

library(ggmap)
library(maps)

Ich habe online Code gefunden, um eine Weltkarte zu erstellen (siehe unten). Wie zoome ich die Handlung auf Länderebene? Zum Beispiel Dänemark .

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

Geben Sie hier eine Bildbeschreibung ein

David
quelle

Antworten:

17

Wenn wir uns das ansehen ?bordersund genauer betrachten ?map, sehen wir, dass wir das regionsArgument verwenden können:

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

Bildbeschreibung hier eingeben


quelle
1
Auch ein sehr schönes Paket für Karten ist Flugblatt: dhl <- leaflet() %>% setView(lat = 50.85045, lng = 4.34878, zoom=5) %>% addTiles(group="OSM")
@ Julius Vainora: Danke. Kann ich diesem Plot Layer hinzufügen? Zum Beispiel, wenn ich einen Datensatz mit "Zustandsgrenzen" finde?
2
@David, ja, Ebenen können hinzugefügt werden, beispielsweise wird + geom_point(data = data.frame(x = 12, y = 56), aes(x = x, y = y))ein Punkt hinzugefügt .
1
Wenn Sie Karten verwenden, möchten Sie diese möglicherweise hinzufügen coord_cartesian(), damit die Skalierung der x- und der y-Achse übereinstimmt.
JAD
9

Holen Sie sich die Grenzen Dänemarks in Lat-Long und verwenden Sie coord_fixed:

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

Geben Sie hier eine Bildbeschreibung ein

Sie können die Grenzen aus dem mapPaket erhalten:

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

Und vielleicht möchten Sie diese ein bisschen erweitern, um mehr Abstand und mehr Kontext zu erhalten.

Raumfahrer
quelle
@ wenn ich renne map("world","Denmark",plot=FALSE)$rangebekomme ich NULL?
Seltsam. Hat map("world","Denmark")produzieren eine Karte von Dänemark? Was ist mit "Frankreich" oder "Belgien"? Verwenden Sie lokale Ländernamen ("Danmark")? Zeichnet map("world")eine Karte? Gibt map("world",plot=FALSE)$nameseinen Vektor mit Länder- / Regionsnamen zurück? Wenn diese nicht funktionieren, ist das sehr merkwürdig und Sie sollten ein neues Q fragen oder einen Fehler melden ...
Spacedman
@ Spacedan: Keiner von ihnen funktioniert entweder NULLoder fehlerhaft. Aber ich kann die Handlungen in den Antworten erstellen ...
1
Starten Sie eine neue saubere R-Sitzung, library(maps)versuchen Sie es dann? Vielleicht haben Sie etwas, was die maps::mapFunktion maskiert . Wahrscheinlich purrr::map? Nicht verwenden library(tidyverse).
Spacedman
4
@ Spacedman: Ich finde es okay, wenn ich maps :: map verwende. Vielleicht dachte es die Kartenfunktion aus dem Purrr-Paket ...