我试图在单个窗口中绘制包含多边形和点的坐标数据(在单独的文件中),以便以后可以运行测试来查看存在哪些模式。我是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检查多边形。我知道这造成了复杂性,但这并不是一个紧迫的问题。
发布于 2014-03-01 07:42:30
作为另一种选择,您可以首先使用
plot(regions)
points("Plants1")发布于 2013-11-27 02:56:38
如果使用sp包中的spplot,则可以使用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)

发布于 2016-03-20 14:44:03
在spatstat中,您可以使用layered类将对象绘制在彼此的顶部。
在您的示例中,regions是一个窗口列表(类owin)。只需输入
plot(as.layered(as.solist(regions)))
在这里,as.solist将普通列表转换为空间对象列表;as.layered将其转换为分层对象。
https://stackoverflow.com/questions/20204482
复制相似问题