在R的spatstat包内将非矩形图划分为子图

时间:2019-03-17 20:17:11

标签: r plot subplot spatstat

我有一些数据,这些数据包含有关具有不同数量的子样及其相应的物种类型(每个子图中的3种以上)的信息。每个物种都有X和Y坐标。

> df
  subplot      species      X       Y
1       1     Apiaceae 268675 4487472
2       1  Ceyperaceae 268672 4487470
3       1     Vitaceae 268669 4487469
4       2  Ceyperaceae 268665 4487466
5       2     Apiaceae 268662 4487453
6       2 Magnoliaceae 268664 4487453
7       3 Magnoliaceae 268664 4487453
8       3     Apiaceae 268664 4487456
9       3     Vitaceae 268664 4487458

利用这些数据,我为总图(大图)窗口中的每个子图的点创建了ppp。

 grp <- factor(data$subplot)
 win <- ripras(data$X, data$Y)
 p.p <- ppp(data$X, data$Y, window = window, marks = grp)

现在,由于有9个子图,因此我想将图分成3 x 3个子图。当我绘图时,通用图不是矩形,看起来类似于菱形。

我可以按以下方式使用quadrats()函数,但是它将我的图分成不相等的子图。有些是quadrad,有些是traingle,等等,我不想要。我希望所有子图都具有相等的四边形(用平行于各边的线划分)。有人可以为此指导我吗?

 divide <-quadrats(p.patt,3,3)
 plot(divide)

谢谢!

2 个答案:

答案 0 :(得分:0)

您能将情节画布分成3x3,然后运行每个情节吗?

[[ assert: (x <=> y) != partial_ordering::unordered ]];

要返回到画布类型上的一个情节

> par(mfrow=c(3,3))
> # run code for plot 1
> # run code for plot 2
  ...
> # run code for plot 9

答案 1 :(得分:0)

这是关于spatstat软件包的问题。

您可以使用函数quantess将窗口划分为相等面积的图块。如果您希望图块边界为垂直线,并且想要7个图块,请使用

B <- quantess(Window(p.patt), "x", 7)

其中p.patt是您的点模式。