разделить не прямоугольный график на отдельные участки в пакете spatstat в R - PullRequest
0 голосов
/ 17 марта 2019

У меня есть данные, которые содержат информацию о участках с различными номерами и их соответствующих видов видов (более 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)

Теперь я хочу разделить сюжет на равные 3 х 3 субплота, потому что есть 9 субплотов. Генетический сюжет не прямоугольный, когда я строю сюжет, он похож на форму ромбо.

Я мог бы использовать функцию quadrats (), как показано ниже, но она разделила мой сюжет на неравные. Некоторые - квадраты, другие - трэйнл и т. Д., Чего я не хочу. Я хочу, чтобы все вспомогательные сюжеты были одинаковыми по размеру квадратами (разделите их на линии, параллельные каждой стороне). Кто-нибудь может мне помочь?

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

Спасибо!

Ответы [ 2 ]

0 голосов
/ 19 марта 2019

Это вопрос о пакете spatstat.

Вы можете использовать функцию quantess, чтобы разделить окно на плитки равной площади.Если вы хотите, чтобы границы плиток были вертикальными линиями, и вам нужно 7 плиток, используйте

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

, где p.patt - это ваш точечный узор.

0 голосов
/ 17 марта 2019

Не могли бы вы разбить холст графика на 3x3, а затем запустить каждый график?

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

Чтобы вернуться к одному графику на холсте, введите

> par(mfrow=c(1,1))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...