如何在R中映射影响范围

问题描述:

我还没有任何代码,因为我试图弄清楚从哪里开始。如何在R中映射影响范围

我正在使用地图(州,德克萨斯州)来绘制得克萨斯州和地理绘图大学。我希望R找出大学在该州的影响范围,并将其绘制出来。

最终,我会geoplot高中在地图上也和我想的R,看看谁的*范围是高中在不在。

有谁知道先跟什么包?

+1

你是如何定义 “*范围”? – jlhoward

+0

我认为它是在边界上的每个点位于当前点和下一个最近点之间的边界的边界上。 – user2884824

+0

@ user2884824对于地图上的任何点,它都位于最接近的大学的'影响范围'内,基本欧几里德距离为 – jenesaisquoi

您的描述符合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)) 

enter image description here