[R-br] Estatística circular - gráfico

Éder Comunello comunello.eder em gmail.com
Quinta Junho 9 11:53:36 BRT 2016


Cassiano, olá novamente!

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

[image: Imagem inline 1]

### <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>



================================================
Éder Comunello
Researcher at Brazilian Agricultural Research Corporation (Embrapa)
DSc in Agricultural Systems Engineering (USP/Esalq)
MSc in Environ. Sciences (UEM), Agronomist (UEM)
---
Embrapa Agropecuária Oeste, Dourados, MS, Brazil |<O>|
================================================
GEO, -22.2752, -54.8182, 408m
UTC-04:00 / DST: UTC-03:00




Em 9 de junho de 2016 08:41, Éder Comunello <comunello.eder em gmail.com>
escreveu:

> Cassiano, bom dia!
>
> Imagino que o que você esteja tentando adicionar ao gráfico é uma linha da
> média + erro tal qual essa que aparece no gráfico abaixo:
>
>
> Infelizmente, não encontrei como reproduzir esse efeito no R. O melhor que
> consegui foi marcar os limites com novas linhas.​
> [image: Imagem inline 1]
>
>
> ### <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
> nascente0=nascente[which(nascente$DISTANCIA==0),]; nascente0
> meses <-
> c("Mai","Jun","Jul","Ago","Set","Out","Nov","Dez","Jan","Fev","Mar","Abr")
>
> #convertendo os dados para circular, usando radianos
> nasc.c0 <- circular(rep(rad(nascente0$angle),nascente0$ABUND),
> units=c("radians"), rota="clock")
> nasc.c0
> plot(nasc.c0, stack=T)
>
> # 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)
> axis.circular(at=circular(rad(nascente0$angle)), labels=meses,
> units=c("radians"), rota="clock")
> 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)
> ### </code>
>
>
>
> ================================================
> Éder Comunello
> Researcher at Brazilian Agricultural Research Corporation (Embrapa)
> DSc in Agricultural Systems Engineering (USP/Esalq)
> MSc in Environ. Sciences (UEM), Agronomist (UEM)
> ---
> Embrapa Agropecuária Oeste, Dourados, MS, Brazil |<O>|
> ================================================
> GEO, -22.2752, -54.8182, 408m
> UTC-04:00 / DST: UTC-03:00
>
>
>
>
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20160609/535dd52f/attachment-0001.html>
-------------- Próxima Parte ----------
Um anexo não-texto foi limpo...
Nome: image.png
Tipo: image/png
Tamanho: 30571 bytes
Descrição: não disponível
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20160609/535dd52f/attachment-0002.png>
-------------- Próxima Parte ----------
Um anexo não-texto foi limpo...
Nome: image.png
Tipo: image/png
Tamanho: 30897 bytes
Descrição: não disponível
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20160609/535dd52f/attachment-0003.png>


Mais detalhes sobre a lista de discussão R-br