##Pacotes necessarios require(untb) require(distr) require(vegan) ##Funcoes para rank-abundance plots e os esperados por uma SAD teorica w.plot <- function(x,...){ plot(1:length(x),x[order(x,decreasing=T)], xlab="Species Rank",ylab="Species Abundance",log="y",...) } ## Acrescenta novos conjuntos de dados ao grafico points.w.plot <- function(x,...){ points(1:length(x),x[order(x,decreasing=T)],...) } ## Grafico rankabundancia com as linahs dos previstos pelos modelos classicos radplot <- function(y,cores=c("black","blue","red","darkgreen","darkorange"), lwd=rep(1,4),...){ w.plot(y,col="darkgrey") lines(rad.null(y),col=cores[1],lwd=lwd[1],...)#brokenstick curve(rad.lnormtf(y)(x),add=T,col=cores[2],lwd=lwd[2],...)#lognormal truncada curve(rad.logserf(y)(x),add=T,col=cores[3],lwd=lwd[3],...)#logserie lines(rad.preempt(y),col=cores[4],lwd=lwd[4],...)#geometrica legend(x="topright", c("Brokenstick","Lognormal","Logseries","Geometric"),lty=1,col=cores,...) } ##Para calculo da abundancia esperada para cada rank ## o argumento sad já deve ser a funcao de distribuicao de probabilidades ## com os parametros ajustados. O argumento padroniza indica ## se é preciso padronizar a distribuicao para ter integral 1 w.plot.exp <- function(sad,S,N,padroniza=F,...){ f1 <- AbscontDistribution(d=sad,withStand=padroniza,...) p <- ppoints(S) ab <- q(f1)(p) data.frame(rank=1:S, abund=ab[S:1]) }