首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ppp图中的图例

ppp图中的图例
EN

Stack Overflow用户
提问于 2016-09-22 03:08:09
回答 1查看 590关注 0票数 2

我正在创建一个基于x-y位置的树的空间地图,使用spatstat包和ppp函数。我已经能够做到这一点,每个点的大小是基于树的直径。我没能做的,我希望在这里找到一些帮助,是创造一个传奇,使我可以展示这些不同的圆圈,也包括6个树种的情节。下面是我正在使用的代码:

代码语言:javascript
复制
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代表西洋参,代码是相同的.)

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-23 02:56:27

首先,使用ppp将所有数据收集到一个superimpose对象中。例如,如果您有Douglas dfp和Western whp,那么

代码语言:javascript
复制
  X <- superimpose(DF=dfp, WH=whp)

创建一个点模式X,其中每个点有两个标记值,物种和直径。为了方便起见,请更改标记列名:

代码语言:javascript
复制
  colnames(marks(X)) <- c("diameter", "species")   

接下来,确定直径的地块符号地图(没有绘制任何内容):

代码语言:javascript
复制
  dmap <- plot(subset(X, select=diameter), do.plot=FALSE)

接下来,为不同的物种选择一组颜色。

代码语言:javascript
复制
  spec <- levels(marks(X)$species)
  scol <- c("red", "blue")
  smap <- symbolmap(inputs=spec, col=scol)

现在用直径比例尺图将这些物种分别绘制成不同的颜色:

代码语言:javascript
复制
  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)
  }

最后,通过使用dmap等绘制您想要的位置上的两个符号映射smapplot(dmap, add=TRUE, xlim=..., ylim=...)

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39629621

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档