Ich möchte Datenpunkte für verschiedene Städte über eine ausgegraute Karte von Google plotten. Da diese Städte in einiger Entfernung voneinander liegen, dachte ich, ich würde eine facettierte Handlung verwenden.Erstellen Sie ggmap mit Punkten, facettiert und jede Facette entsprechend gezoomt?
Erstellen der Karte ist einfach genug; siehe Bild und Code unten. Allerdings zeigt jede Facette die gleiche Fläche - in diesem Fall Greater London - mit dem Ergebnis, dass die Punkte für andere Städte nicht angezeigt werden.
Idealerweise hätte ich gerne jede Facette, um jede Stadt mit den relevanten Punkten überlagert zu zeigen. So würde die Facette "Cardiff" eine vergrößerte Karte von Cardiff und seinen Datenpunkten zeigen, "Birmingham" würde Birmingham und seine Punkte zeigen und so weiter. Ich habe versucht, verschiedene Parameter wie und center
zu ändern, aber ich war nicht erfolgreich.
Wie kann ich eine andere Stadt und die relevanten Punkte in jeder Facette zeigen?
require(ggmap)
require(reshape)
# create fake data
sites <- data.frame(site = 1:6,
name = c(
"Royal Albert Hall",
"Tower of London",
"Wales Millenium Centre",
"Cardiff Bay Barrage",
"Birmingham Bullring",
"Birmingham New Street Station"
),
coords = c(
"51.501076,-0.177265",
"51.508075,-0.07605",
"51.465211,-3.163208",
"51.44609,-3.166652",
"52.477644,-1.894158",
"52.477487,-1.898836"),
subzone = rep(c('London','Cardiff','Birmingham'), each = 2)
)
# use function from reshape to split/add column
sites = transform(sites,
new = colsplit(coords, split = ",", names = c('lat', 'lon')))
names(sites) <- c(names(sites)[1:4], 'lat','lon')
ggmap(get_googlemap(center = "London", # omitting this doesn't help
scale = 2,
zoom = 11, # fiddling with zoom doesn't work
color = 'bw',
maptype = 'roadmap',
extent = 'panel',
format = "png8",
filename = "facet_map_test",
)) +
facet_wrap(~ subzone, ncol = 1) +
geom_point(data = sites,
aes(x = lon, y = lat),
fill = "red",
size = 3,
colour = "black",
shape = 21,
alpha = 1) +
theme(legend.position = "none") +
theme()
Mit Blick auf die 'ggmap()' Code, ich glaube, das ist einfach nicht unterstützt: Alle Facetten der gleichen Karte zu teilen haben. Ziehen Sie in Betracht, drei separate Plots zu erstellen (sogar mit 'facet_wrap', um den Header zu erhalten) und diese auf irgendeine Weise zu kombinieren. – krlmlr