ppp图中的图例
我使用spatstat包和ppp函数基于x-y位置创建树的空间映射。我已经能够做到这一点,每个点的大小是基于树的直径。我无法做到的,我希望能在这里找到一些帮助,是创造一个传奇,让我能够展示这些不同的圈子,并且还包括剧情中的6种树种。下面是使用代码I'm:ppp图中的图例
df <- subset(plots, plots$spp == "DF") # Douglas-fir
dfx <- as.numeric(as.character(df$x))
dfy <- as.numeric(as.character(df$y))
dfd <- as.numeric(as.character(df$d))
dfp <- ppp(dfx, dfy, window = owin(c(0, 100), c(0, 100)),
unitname=c("metres","metres"), marks = dfd)
par(mar = c(2, 2, 2, 2))
plot(dfp, main = "", cex = 0.8, markscale = 0.04,
bg = rgb(0.1,0.9,0.3,0.5), fg = "black")
我对每一个物种的类似结构中的情节(WH西部铁杉和代码是一样的......)
感谢
!
首先使用superimpose
将所有数据收集到一个对象ppp
中。例如,如果你有花旗松dfp
和西部铁杉whp
然后
X <- superimpose(DF=dfp, WH=whp)
创建,其中每个点有两个选择值,种类和直径的点模式X
。为了方便起见,更改标志的列名:
colnames(marks(X)) <- c("diameter", "species")
接着确定用于直径积符号映射(没有绘制任何东西):
dmap <- plot(subset(X, select=diameter), do.plot=FALSE)
接着挑一组颜色用于不同物种,例如
spec <- levels(marks(X)$species)
scol <- c("red", "blue")
smap <- symbolmap(inputs=spec, col=scol)
现在,使用直径比例尺的地图绘制在不同颜色的品种:
plot(Window(X), main="The main title")
for(i in seq_along(spec)) {
sy <- update(dmap, col=scol[i])
Xi <- subset(X, species==spec[i], select=diameter)
plot(Xi, add=TRUE, symap=sy)
}
最后绘制两个符号使用plot(dmap, add=TRUE, xlim=..., ylim=...)
等在地图上你想要的地方dmap
和smap
。
未来这将是自动化的,但它还没有实现。
[叠加]适用于创建一个独特的ppp对象。尽管如此,我已经收到[dmap
[叠加]非常适合创建一个独特的ppp对象。然而,我已经收到[dmap
错误消息表明spatstat未加载,或者X不是ppp对象。在执行此代码之前,您需要输入库(spatstat)。还要确保在代码的第三行中使用正确的对象X,如在第一行代码中创建的。如果它仍然不起作用,请发布一个简单的例子。 –
只是为了澄清:你希望每个物种都被绘制成不同的颜色,然后包括一个连接物种名称和颜色的图例? –