【发布时间】:2021-03-14 17:06:40
【问题描述】:
当我使用 plot 命令绘制 900 个点时,只选择了 30 个。具体来说,30 个“父”点将我的 Matern 集群算法基于我的代码早期。我正在生成具有指定点数的 Matern 集群过程,因为我需要在不同的地块之间进行比较。因此,为什么我不使用 spatstat 功能。此外,所有点似乎都偏向 y 轴上的较低值,我无法弄清楚发生了什么。
我最初通过定义地块的尺寸来生成我正在使用的景观。
xMin<--0
xMax<-1000
yMin<--0
yMax<-1000
然后我定义我的集群的半径,我选择不使用泊松分布,因为我需要一定数量的点,所以没有指定强度。
radiusCluster<-0.1
然后我计算窗口上落在观察窗口之外的点的扩展。
rExt<-radiusCluster
xMinExt<-xMin-rExt
xMaxExt<-xMax+rExt
yMinExt<-yMin-rExt
yMaxExt<-yMax+rExt
xDeltaExt<-xMaxExt-xMinExt
yDeltaExt<-yMaxExt-yMinExt
然后我定义父点的数量及其在窗口中的位置。
numbparents<-30
xxParent<-xMinExt+xDeltaExt*runif(numbparents)
yyParent<-yMinExt+yDeltaExt**runif(numbparents)
然后我定义子点的数量和它们的笛卡尔坐标
numbdaughter<-30
theta=2*pi*runif(numbdaughter)
rho=radiusCluster*sqrt(runif(numbdaughter))
xx0<-rho*cos(theta)
yy0<-rho*sin(theta)
然后我复制父点的位置与子点的数量相同,并转换坐标以生成聚类。
xx=rep(xxParent,numbdaughter);
yy=rep(yyParent,numbdaughter);
xx=xx+xx0;
yy=yy+yy0
但是,当我绘制这个时,即使有 900 个点,也只会生成父点。此外,大多数都在 y 轴的底部附近,每次我做图时,我都不明白,因为我使用了随机数函数,所以它们应该均匀分布在图上。
plot(xx,yy,xlab='x',ylab='y',col='blue')
我需要做什么来绘制所有的点,并让 runif 在指定的范围内绘制均匀分布?
【问题讨论】:
-
不确定你想达到什么目标,但你只有 30 个独特的 x,y 位置:
nrow(unique(cbind(xx, yy)))给出 30 -
我没有遍历所有代码,但是如果 first 代码行是
xMin<--0,意味着将-0分配给一个变量,并且这种奇怪的分配重复后面2行,那么肯定还有其他错误。