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西部铁杉和代码是一样的......)

感谢

+0

只是为了澄清:你希望每个物种都被绘制成不同的颜色,然后包括一个连接物种名称和颜色的图例? –

首先使用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=...)等在地图上你想要的地方dmapsmap

未来这将是自动化的,但它还没有实现。

+0

[叠加]适用于创建一个独特的ppp对象。尽管如此,我已经收到[dmap

+0

[叠加]非常适合创建一个独特的ppp对象。然而,我已经收到[dmap

+0

错误消息表明spatstat未加载,或者X不是ppp对象。在执行此代码之前,您需要输入库(spatstat)。还要确保在代码的第三行中使用正确的对象X,如在第一行代码中创建的。如果它仍然不起作用,请发布一个简单的例子。 –