标签/着色元素/ linnet对象的片段

时间:2017-01-03 15:52:37

标签: spatstat

我对spatstat中的图有3个相关问题:

  1. 如何标记linnet的片段。例如,只是元素的id
  2. 如何在情节
  3. 上标记附加到红雀网片段的共变量
  4. 如何基于以下方式控制绘图中的直线段的宽度:协变量或者例如我希望段的厚度与从网络上的点过程在该段上实现的点的数量成比例。因此,如果一个过程在一个线段上生成10个点而在第二个段上生成5个点,我想将第一个段绘制为比第二个段宽两倍。
  5. 我在书中找到了一些例子 - 空间点模式 - 但它们表明使用图像或核密度来控制一个段的宽度。我使用linfun进行不均匀的处理,我没有找到一种方法来着色或控制我的绘图中的线宽或标记图。

    小方块的一个例子:

    library(spatstat)
    
    v<-ppp(x=c(50,100,100,50), y=c(50,50,100,100),c(0,150), c(0,150)) #vertices
    edg<-matrix(c(1,2,3,4,2,3,4,1), ncol=2) #edges
    L<-linnet(v, edges=edg) #create a linnet
    
    z<-c(11,22,33,44) # create covariate
    Zfun <- linfun(function(x,y,seg,tp) { seg }, L)
    
    plot(Zfun)
    
    # I added some marks
    marks(x) <- runif(npoints(x), 3, 4)
    

    谢谢

1 个答案:

答案 0 :(得分:1)

您可以通过创建类linfun的合适函数来完成所有操作。

例如,请访问网络L <- simplenet

问题1:

f <- linfun(function(x,y,seg,tp) { seg }, L)
plot(f)

函数f返回包含指定点的段的段ID号。此号码从1nsegments(L)

对于问题2,假设您有一个向量Z给出网络每个段的协变量值(假设协变量值在每个段上是常量)。我将以Z <- runif(nsegments(L))为例。然后

 g <- linfun(function(x,y,seg,tp) { Z[seg] }, L)
 plot(g)

问题3,

 plot(g, style="width")

请参阅help(plot.linfun)help(plot.linim)(基本上plot.linfun将函数转换为像素图片,然后调用plot.linim)。