splancs包中的csr函数生成多边形外的点

时间:2013-08-30 16:44:25

标签: r ggplot2 spatial

使用csr包中的splancs函数为美国大陆生成点模式时,我发现在密歇根湖和伊利湖的一小部分区域生成了一些点。下面是一个例子。

# Load packages
library(maps)
library(ggplot2)
library(splancs)

# Obtain coordinates of US polygon
usa <- map_data("usa")
country <- usa[c(1,2)]
colnames(country) <- c("x", "y")
country <- as.points(country)

# Generate points under complete spatial randomness
random <- csr(country, 30000)
random <- data.frame(random)

# Obtain coordinates of state outlines
state <- map_data("state")

# Plot the points on a map of the US
p <- ggplot(state, aes(x = long, y = lat)) +
geom_path(color = "black", aes(group = group)) +
geom_point(data = random, size = 0.7, aes(x = xc, y = yc), color = "gray") +
theme_bw()
p

以上代码生成的地图显然在密歇根湖和伊利湖上有一些点。有什么方法可以阻止这种情况吗?

1 个答案:

答案 0 :(得分:0)

Splancs'csr函数仅适用于简单的单环多边形。为了准确了解您要喂食的内容,请使用polymap

polymap(country)

enter image description here

糟糕。你的国家多边形有一些奇怪之处。获得更好的多边形。