如何在R中映射影响范围
问题描述:
我还没有任何代码,因为我试图弄清楚从哪里开始。如何在R中映射影响范围
我正在使用地图(州,德克萨斯州)来绘制得克萨斯州和地理绘图大学。我希望R找出大学在该州的影响范围,并将其绘制出来。
最终,我会geoplot高中在地图上也和我想的R,看看谁的*范围是高中在不在。
有谁知道先跟什么包?
答
您的描述符合voronoi diagram的概念。它根据点的位置将区域划分为多边形(例如您的高中)。多边形中的所有点都比这个特殊的高中更接近所有其他高中。
使用ggplot2
为例,从this link复制:
library(ggplot2)
library(deldir)
library(scales)
library(reshape2)
library(plyr)
# make fake points
n <- 50
k <- 4
mat <- cbind(rnorm(n), rnorm(n))
df <- as.data.frame(mat)
names(df) <- c('x','y')
# triangulate
xrng <- expand_range(range(df$x), .05)
yrng <- expand_range(range(df$y), .05)
deldir <- deldir(df, rw = c(xrng, yrng))
# voronoi
qplot(x, y, data = df) +
geom_segment(
aes(x = x1, y = y1, xend = x2, yend = y2), size = .25,
data = deldir$dirsgs, linetype = 2
) +
scale_x_continuous(expand = c(0,0)) +
scale_y_continuous(expand = c(0,0))
你是如何定义 “*范围”? – jlhoward
我认为它是在边界上的每个点位于当前点和下一个最近点之间的边界的边界上。 – user2884824
@ user2884824对于地图上的任何点,它都位于最接近的大学的'影响范围'内,基本欧几里德距离为 – jenesaisquoi