是否可以在 Rstudio 中使用 SpatStat 向 3D 点图案添加标记?

Is it possible to add marks to a 3D point pattern using SpatStat in Rstudio?

我正在使用spatstat软件来分析细胞之间的空间关系。我过去曾将其用于 2D,效果很好。我现在将其用于共聚焦图像的 3D 分析。

我的问题是我无法绘制具有不同标记的结果点模式。我能够将标记(单元格类型)分配给每个点并绘制 3D 点模式。但是,这些标记不会作为不同的字符出现在图上。

Series6 <-pp3(Series6[,5], Series6[,6],Series6[,7],box3(c(0,775),c(0,775),c(0,30)), marks = Series6[,8])

结果图:3D Plot

我已经尝试使用 2D 点模式,它可以很好地为每个标记显示不同的字符。这让我觉得标记功能与 3D 点模式不兼容。如果有人有任何提示,我将不胜感激。

三维点图案(class pp3)可以有标记。您的代码已成功为点分配标记。您可以通过输入 head(as.data.frame(Series6)) 来检查这一点,这将显示前几个点的坐标和标记。

问题是 plot 方法 plot.pp3 不显示标记。此功能尚未实现。

我会将此问题作为 spatstat 的功能请求。

同时,您可以通过将点模式拆分为具有不同标记的子集(假设标记是分类的)并依次绘制每个子集来获得所需的效果。这是执行此操作的函数:

plotbymark <- function(X, cols=NULL, chars=NULL, main="") {
   require(spatstat)
   stopifnot(is.pp3(X))
   stopifnot(is.multitype(X))
   Y <- split(X, un=TRUE)
   m <- length(Y)
   mm <- seq_len(m)
   if(is.null(cols)) cols <- mm
   if(is.null(chars)) chars <- mm
   for(i in mm) {
      plot(Y[[i]], col=cols[i], pch=chars[i], add=(i > 1), main=main)
   }
   explain <- data.frame(type=names(Y), col=cols, pch=chars)
   return(invisible(explain))
 }