If I well understand, you want to plot the Species Richness vs. Sampling effort from a contingency table of species individuals found within different samples. I am not familiar with the vegan package but you can bootstrap your data as following. In the second example you could try to increase number of points by adding another loop which makes several sampling at each step of i.
A real data curve is supposed to look like a sqrt function while here it is flat since every sample contains all species. In fisheries fishing effort is often measured in number of boat x days at sea, boats supposed to have the same Trawled area, number of hooks or total length of fishing lines are other common measures.
count.sp <- function(sample.vec, dataset){
sample.presence <- dataset[sample.vec, grep("sp.", names(dataset))] != 0
overall.presence <- apply(sample.presence, 2, sum) != 0
n.species <- sum(overall.presence)
return(n.species)
}
# Sampling effort = number of sample
plot(c(0, nrow(dataset) - 1), c(0, 1.5*length(grep("sp.", names(dataset)))), type="n",
xlab="Sampling effort", ylab="Species richness")
for (i in 1:(nrow(dataset) - 1)){
sample.vec <- sample(seq(along=dataset$Sample_ID), i)
points(i, count.sp(sample.vec, dataset), pch=19, cex=0.5)
}
# Sampling effort = number of hooks
plot(c(0, sum(dataset$Nhooks)), c(0, 1.5*length(grep("sp.", names(dataset)))), type="n",
xlab="Sampling effort", ylab="Species richness")
for (i in 1:(nrow(dataset) - 1)){
sample.vec <- sample(seq(along=dataset$Sample_ID), i)
points(sum(dataset$Nhooks[sample.vec]), count.sp(sample.vec, dataset), pch=19, cex=0.5)
}