Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用R在一个图中绘制多物种累积曲线_R_Plot - Fatal编程技术网

如何使用R在一个图中绘制多物种累积曲线

如何使用R在一个图中绘制多物种累积曲线,r,plot,R,Plot,所以我对R非常陌生,我正试图为从3个不同栖息地采集的鱼类绘制一条物种累积曲线。理想情况下,我希望有一个显示4条曲线的图(一条用于所有栖息地的所有鱼类,三条用于每个栖息地的鱼类) 我一直在努力寻找正确的代码,我遇到了这个问题。我试图复制代码来处理我的数据,但似乎不知道我需要更改哪些小部分才能使其工作 到目前为止,我为所有采集的鱼类创建的曲线如下: AllFish = read.csv(file.choose(), header = TRUE) AllFish_community = AllFish

所以我对R非常陌生,我正试图为从3个不同栖息地采集的鱼类绘制一条物种累积曲线。理想情况下,我希望有一个显示4条曲线的图(一条用于所有栖息地的所有鱼类,三条用于每个栖息地的鱼类)

我一直在努力寻找正确的代码,我遇到了这个问题。我试图复制代码来处理我的数据,但似乎不知道我需要更改哪些小部分才能使其工作

到目前为止,我为所有采集的鱼类创建的曲线如下:

AllFish = read.csv(file.choose(), header = TRUE)
AllFish_community = AllFish[2:74]

library(vegan)

Curve = specaccum(AllFish_community, method = "random", 
                  permutations = 100)

plot(Curve, ci = 0, ci.type = c("line"),
     ylab="Number of Species")

axis(1, at=1:15)
这给了我一个很好的情节

我想知道我如何编码它,这样我就可以把3个独立的栖息地添加到绘图中。我将数据按如下方式排列,以便第一行是标签。基质中有73种鱼类,3个栖息地各有5个重复

多谢各位


编辑-是指向my.csv数据集的链接

您的问题是您正在计算所有物种的物种曲线。你想要的(尽管我不确定这是否正确)是为每个栖息地计算单独的曲线,然后为所有栖息地计算单独的曲线,最后将所有曲线绘制在一起。代码如下:

library(vegan)
library(dplyr)

AllFish = read.csv("FILELOCATION" , header = TRUE)
AllFish_community = AllFish[2:74]

curve_all = specaccum(AllFish_community, method = "random", 
                  permutations = 100)

#subset each habitat into its own df
AllFish %>% filter(Habitat == "Coral") -> coral
AllFish %>% filter(Habitat == "Rubble") -> rubble
AllFish %>% filter(Habitat == "Sand") -> sand

#calc species accumulation curve for each habitat
curve_coral = specaccum(coral[, 2:76], method = "random")
curve_rubble = specaccum(rubble[, 2:76], method = "random")
curve_sand = specaccum(sand[, 2:76], method = "random")

#plot curve_all first
plot(curve_all)
#then plot the rest
plot(curve_coral, add = TRUE, col = 2) #col is COLOUR setting, so change it to something else if you want
plot(curve_rubble, add = TRUE, col = 3)
plot(curve_sand, add = TRUE, col = 4)

请分享您的示例数据,而不是屏幕截图。很抱歉。它在一个.csv文件中。你能更新你问题中的链接吗?选择我的帖子作为答案我想要甜点。请:D