2013-11-25 73 views
0

我試圖在單個窗口中繪製包括多邊形和點(在單獨文件中)的座標數據,以便稍後可以運行測試以查看存在哪些模式。我對R相當陌生(並且對spatstat非常陌生),所以我非常感謝有關如何最好地創建具有多種類型的空間數據的單個繪圖的任何建議。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檢查多邊形。我知道這會造成併發症,但這並不是緊迫的問題。

回答

0

如果您使用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)) 

enter image description here

或使用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) 

enter image description here

1

正如你所繪製的多邊形的替代首先使用

plot(regions) 
points("Plants1") 
0

spatstat中,您可以使用layered類將對象打在彼此的頂部。

在您的示例中,regions是一個窗口列表(類別owin)。只需鍵入

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

這裏as.solist轉換香草列表空間對象的列表; as.layered將其轉換爲分層對象。