São muitas as opções para se fazer um gráfico de barras com a indicação do erro padrão (ou outra medida de dispersão) no R. Com uma rápida busca na rede pode-se ter dezenas de sugestões. Eu resolvi contribuir com mais uma.
Meu objetivo era representar a variação da densidade de algumas espécies medida em períodos noturnos e diurnos.
A partir de três tabelas, uma contendo as médias, outra o erro padrão e uma terceira com o número de observações, utilizo os comandos barplot, points, arrows e text para gerar o gráfico desejado.
Os dados das tabelas são copiados para o R pelo comando read.delim (clique aqui para mais detalhes) e transformados em matrizes pelo comando as.matriz.
Médias
SP1 | SP2 | SP3 | SP4 | |
D | 10 | 12 | 15 | 20 |
N | 20 | 15 | 12 | 10 |
Erros padrões
SP1 | SP2 | SP3 | SP4 | |
D | 1 | 2 | 3 | 4 |
N | 3 | 2 | 1 | 5 |
Número de observações
SP1 | SP2 | SP3 | SP4 | |
D | 30 | 40 | 35 | 10 |
N | 20 | 50 | 20 | 27 |
# copia os dados das tabelas para o R
means <- as.matrix(read.delim("clipboard",row.names=1))
se <- as.matrix(read.delim("clipboard",row.names=1))
n <- as.matrix(read.delim("clipboard",row.names=1))
# calcula a amplitude da variação do erro
se.sup<-means+se
se.inf<-means-se
# desenha o gráfico
bp<-barplot(means,beside=T,ylim=c(0,max(se.sup*1.15)),
ylab="densidade",legend.text=c("Diurno","Noturno"),
args.legend=list(x = "topleft", bty="n"))
points(bp,means,pch=19)
arrows(bp,se.sup,bp,se.inf, code=3,angle=90,length=0.05)
text(bp,se.sup+1,n)
means <- as.matrix(read.delim("clipboard",row.names=1))
se <- as.matrix(read.delim("clipboard",row.names=1))
n <- as.matrix(read.delim("clipboard",row.names=1))
# calcula a amplitude da variação do erro
se.sup<-means+se
se.inf<-means-se
# desenha o gráfico
bp<-barplot(means,beside=T,ylim=c(0,max(se.sup*1.15)),
ylab="densidade",legend.text=c("Diurno","Noturno"),
args.legend=list(x = "topleft", bty="n"))
points(bp,means,pch=19)
arrows(bp,se.sup,bp,se.inf, code=3,angle=90,length=0.05)
text(bp,se.sup+1,n)