我知道 R 有多种方法可以通过投影正确绘制地图。但只是为了使用基本函数快速获得“足够好”的结果,是否有一个函数可以计算特定纬度的纵横比,如果提供给 R 的典型asp
参数将接近正确的图?即相当于ggplot2 的coord_quickmap方法的东西。感谢任何建议。
问问题
2305 次
1 回答
7
如果coord_quickmap
提供的东西对您来说足够接近,那么您可以执行以下操作:
library(ggplot2)
library(maps)
library(mapdata)
# shamelessly stolen from coord_quickmap
map_aspect = function(x, y) {
x.center <- sum(range(x)) / 2
y.center <- sum(range(y)) / 2
x.dist <- ggplot2:::dist_central_angle(x.center + c(-0.5, 0.5), rep(y.center, 2))
y.dist <- ggplot2:::dist_central_angle(rep(x.center, 2), y.center + c(-0.5, 0.5))
y.dist / x.dist
}
会做什么ggplot
:
ggplot(data.frame(state.center)) + geom_point(aes(x=x, y=y)) + coord_quickmap()
同样的事情,现在,在基地:
plot(state.center$x, state.center$y,
asp=map_aspect(state.center$x, state.center$y))
但请记住,这coord_quickmap
(以及由此计算的比率)是为小区域设计的。我在这里发布了一些能够选择地图投影的资源:here which will work great with spTransform
& base)。
于 2015-07-31T12:45:03.770 回答