我想在谷歌的灰色地图上绘制各个城市的数据点。由于这些城市彼此相距一定距离,我想我会使用多面图。
创建地图很容易;请参阅下面的图像和代码。但是,每个方面都显示相同的区域 - 在本例中为大伦敦 - 结果是未显示其他城市的点。
理想情况下,我希望每个方面都显示覆盖了相关点的每个城市。因此,刻面“卡迪夫”将显示卡迪夫的缩放地图及其数据点,“伯明翰”将显示伯明翰及其数据点,依此类推。我尝试过更改各种参数,例如zoom
和center
但我没有成功。
如何在每个方面显示不同的城市和相关点?
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()