Cassiano, olá novamente!
Atualizei o código, pois percebi que havia um erro na atribuição dos labels (meses) que estavam "counter-clock".

### <code r>
library(circular)
nascente <- read.table(text=
"AMBIENTE mes angle DISTANCIA ABUND RIQUEZA
NASC 1 0 0 2 2
NASC 2 30 0 3 1
NASC 3 60 0 4 3
NASC 4 90 0 8 5
NASC 5 120 0 0 0
NASC 6 150 0 0 0
NASC 7 180 0 31 1
NASC 8 210 0 10 3
NASC 9 240 0 18 3
NASC 10 270 0 7 5
NASC 11 300 0 2 2
NASC 12 330 0 1 1", head=T)
nascente$meses <- c("Mai","Jun","Jul","Ago","Set","Out","Nov","Dez","Jan","Fev","Mar","Abr")
nascente
#convertendo os dados para circular, usando radianos
nasc.c0 <- circular(rep(rad(nascente$angle),nascente$ABUND), units=c("radians"), rota="clock")
nasc.c0
plot(nasc.c0, stack=T)
deg(nasc.c0)
# Angulo médio + Desvio padrão angular
media <- mean(nasc.c0)
dp <- sd(nasc.c0)
n <- length(nasc.c0)
err <- dp/sqrt(n)
len <- rho.circular(nasc.c0)
cbind(media, dp, n, err, len)
sd(nasc.c0); sqrt(-2*log(rho.circular(nasc.c0)))
# Gráfico
# par(mfrow=c(1,3))
# par(mar=c(0,0,2,0))
plot(nasc.c0,axes=F, main=NA, stack=F, col=3)
axis.circular(at=circular(rad(nascente$angle), rota="clock"), labels=nascente$meses, units=c("radians"), col=4)
rose.diag(nasc.c0, add=T, axes=F, col=8, bor=8, lwd=3)
# arrows.circular(median(nasc.c0),y=rho.circular(nasc.c0),lwd=3,lty=1,angle=30,len=0.1,col="green") #aqui eu inseri a mediana
arrows.circular(mean(nasc.c0),y=len, lwd=2, lty=1, angle=90, len=0.1, col=2)
arrows.circular(media+err, y=1, lwd=1, lty=3, angle=0, len=0.1, col=2)
arrows.circular(media-err, y=1, lwd=1, lty=3, angle=0, len=0.1, col=2)
nascente
### </code>