首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >绘制表中每列与单列的关系

绘制表中每列与单列的关系
EN

Stack Overflow用户
提问于 2015-09-02 04:06:54
回答 1查看 47关注 0票数 0

我有一张来自不同卫星的63个样本点的植被指数导出表。这给了我一个包含63个观察值(样本点)和56个变量(1个样本ID,50个植被指数,4个生物量和1个LAI)的表格。表的最后5列是生物量和LAI,第一列是样本ID。我想生成一个曲线图,显示单个植被指数与其中一个生物量参数之间的关系。我可以使用plot函数来做到这一点,一次只有一个观察值和变量。

代码语言:javascript
复制
plot(data$Dry10, data$X8047EVImea)

我不想为每个生物量和LAI参数运行这段代码50次和5次。

有没有办法循环或嵌套循环这个绘图函数,这样我就可以一次生成200张图?

此外,我将在每个地块中放置一条回归线,以查看什么植被指数最能代表样本点存在的生物量。

这是我在stackoverflow上的第一篇文章,所以如果我遗漏了什么,请不要犹豫,请求更多关于这个问题的信息。

EN

回答 1

Stack Overflow用户

发布于 2015-09-02 06:11:08

正如我在评论中所指出的,您可以使用ggplot2包中的分面图来实现这一点。这确实需要一些数据重新排列,这可以通过reshape2包来完成。下面是一些接近你想要做的事情的代码,但由于我不完全了解你的数据格式,它可能需要一些修复:

代码语言:javascript
复制
library(ggplot2)
library(reshape2)
library(dplyr)

vegDat <- data[,2:51]
bioDat <- data[,52:55]
## melt the data.frames so the biomass and vegetation headers are now variables
vegDatM <- melt(vegDat, variable.name='vegInd', value.name='vegVal')
bioDatM <- melt(bioDat, variable.name='bioInd', value.name='bioVal')
## Join these datasets to create all comparisons to be made
gdat <- bind_cols(vegDatM[rep(seq_len(nrow(vegDatM)), each=nrow(bioDatM)),],
    bioDatM[rep(seq_len(nrow(bioDatM)), nrow(vegDatM)),])
## plot the data in a faceted grid
ggplot(gdat) + geom_point(aes(x=vegVal, y=bioVal)) + facet_grid(vegInd ~ bioInd)

请注意,由于有50个图,您可能想要打开一个高度较大的器件(如果交换小平面,则为宽度),例如pdf('foo.pdf',heigth=20)。希望这能让你走上正轨。

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

https://stackoverflow.com/questions/32340039

复制
相关文章

相似问题

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