我不确定这是否是问这个问题的正确地方,但是有人对访问可用于 ggmap 的不同地图样式有建议吗?CloudMade 不再向非“企业账户”的账户提供 API 密钥。
来自“ggmap: Spatial Visualization with ggplot2”(Kahle 和 Wickham),他们建议使用 Stamen 或 Google 地图,但我正在寻找与这些不同的风格。
任何人都可以建议一个可用于 ggmap 的地图样式存储库吗?
干杯
谷歌地图有一个鲜为人知的风格特征:
https://developers.google.com/maps/documentation/javascript/styling
正如另一条评论指出的那样,get_map 只是 get_googlemap 等的包装器。然后 get_googlemap 只是一系列用于获取地图图块的 http 调用的包装器,因此似乎可以稍微破解 get_googlemap 的代码而不是指向在基本的谷歌地图样式中,它会抓取样式化的瓷砖。
我可能会在下个月采用这种方法,因为我需要 OP 要求的类似底图。
maps
您可以使用该软件包获得简单的陆地 - 水对比:
用 xlim 和 ylim 设置地图的边界。
library(maps)
library(ggplot2)
map <- fortify(map(fill = TRUE, plot = FALSE))
ggplot(data = map, aes(x=long, y=lat, group = group)) +
geom_polygon(fill = "ivory2") +
geom_path(colour = "black") +
coord_cartesian(xlim = c(137, 164), ylim = c(-14, 3.6)) +
theme(panel.background = element_rect(fill = "#F3FFFF"),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank())
地图有点笨重,但包中提供了高分辨率地图mapdata
>
library(mapdata)
map <- fortify(map("worldHires", fill = TRUE, plot = FALSE))
ggplot(data = map, aes(x=long, y=lat, group = group)) +
geom_polygon(fill = "ivory2") +
geom_path(colour = "black") +
coord_cartesian(xlim = c(135, 165), ylim = c(-15, 0)) + # Papua New Guinea
theme(panel.background = element_rect(fill = "#F3FFFF"),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank()) # Be patient
或者可以选择一个国家。
map <- fortify(map("worldHires", fill = TRUE, plot = FALSE))
ggplot(data = subset(map, region == "Papua New Guinea"), aes(x=long, y=lat, group = group)) +
geom_polygon(fill = "ivory2") +
geom_path(colour = "black") +
theme(panel.background = element_rect(fill = "#F3FFFF"),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank())
这目前最适合 ggmap 的开发版本。要使用它,您需要运行
devtools::install_github("dkahle/ggmap")
我开发了一个新包ggmapstyles
,它应该有助于解决这个问题:https ://github.com/mikey-harper/ggmapstyles 。它提供了一种从Snazzy Maps中选择主题的简单方法,其中预先制作了超过 16,000 种不同的样式,并允许您创建自定义设计。
要使用设计,请转到 Snazzymaps 并找到您喜欢的样式,然后get_snazzymap()
使用mapRef
参数将 URL 复制到函数中:
devtools::install_github("dr-harper/ggmapstyles")
library(ggmapstyles)
map <- get_snazzymap(center = 'Southampton, UK',
mapRef = "https://snazzymaps.com/style/72543/assassins-creed-iv")
ggmap(map)
将计划进一步开发它,并可能在未来将其与 ggmap 合并:)