0

我正在尝试在单个窗口中绘制包含多边形和点(在单独的文件中)的坐标数据,以便以后可以运行测试以查看存在哪些模式。我对 R 相当陌生(对 spatstat 也很陌生),所以我非常感谢有关如何最好地创建具有多种类型空间数据的单个图的任何建议。

library(sp)
library(maptools)
library(mgcv)
library(spatstat)

##read in the shapefiles (from Pathfinder)
data<-readShapeSpatial("SouthC1")
regions<-slot(data, "polygons")
regions<-lapply(regions, function(data){SpatialPolygons(list(data))})
windows<-lapply(regions, as.owin)
spatstat.options(checkpolygons=FALSE)
y<-as(data, "owin")
spatstat.options(checkpolygons=TRUE)
points<-readShapeSpatial("Plants1")

##Define points and polygons as objects that can be read into owin?

我怀疑我患有新手炎,将不同类型的空间数据读取到单个窗口中并不困难。对不起。

旁注:一些多边形确实重叠,这就是为什么我不希望 spatstat 检查多边形。我知道这会造成复杂性,但这不是一个紧迫的问题。

4

3 回答 3

1

作为替代方案,您可以先使用

plot(regions)
points("Plants1")
于 2014-02-28T23:42:29.753 回答
0

如果spplotsp包中使用,则可以使用sp.layout参数。请注意下面的示例将空间网格与空间点相结合,但完全相同的技术可用于点和多边形。

library(sp)
library(lattice)
trellis.par.set(sp.theme()) # sets bpy.colors() ramp
data(meuse)
coordinates(meuse) <- ~x+y
data(meuse.grid)
gridded(meuse.grid) <- ~x+y

spplot(meuse.grid, c("ffreq"), sp.layout = list("sp.points", meuse))

在此处输入图像描述

或使用ggplot2(我的偏好):

library(ggplot2)
# Note that you can use `fortify` to transform a SpatialPolygons* object to a data.frame
# for `ggplot2`.
pt_data = as.data.frame(meuse)
grid_data = as.data.frame(meuse.grid)
ggplot(grid_data, aes(x = x, y = y)) + geom_tile(aes(fill = ffreq)) + 
                            geom_point(data = pt_data)

在此处输入图像描述

于 2013-11-26T18:56:38.487 回答
0

在您可以使用该类spatstat将对象绘制在彼此之上。layered

在您的示例中,regions是一个窗口列表(类owin)。只需键入

plot(as.layered(as.solist(regions)))

这里as.solist将普通列表转换为空间对象列表;as.layered将此转换为分层对象。

于 2016-03-20T06:44:02.680 回答