Alexandre,
Eu não espero que exista uma opção na função para tratar essa situação. Porém, a composição geométrica do gráfico de barras é simples, é uma série de retângulos justapostos e agrupados onde a altura do retângulo representa a grandeza. Dessa forma podemos começar numa janela em branco e adicionar as barras usando rect(). Veja o CMR baseado no que você passou
# dput() nos dados ficou menor que o código para obtê-los, C[Mínimo]R
#dput(TAB)
TAB <- structure(c(25.2, 27.6, 22, 9, NaN, 8.2, 46.8, 46.8, 46.6), .Dim = c(3L,
3L), .Dimnames = list(c("1", "2", "3"), c("a", "b", "cc")))
#dput(TAB2)
TAB2 <- structure(c(1.65529453572468, 2.11187120819429, 2, 1.04880884817015,
NA, 0.66332495807108, 4.36348484585429, 4.38634243989226, 3.2649655434629
), .Dim = c(3L, 3L), .Dimnames = list(c("1", "2", "3"), c("a2",
"b2", "c2")))
nbars <- 8; ngroups <- 3; barwidth <- 1; between <- 1; margin <- 0.5
col <- c("seagreen","forestgreen","limegreen")
ylim <- c(0, 1.1*max(TAB+TAB2, na.rm=TRUE))
xlim <- c(0, nbars*barwidth+2*margin+ngroups*between)
plot(x=NULL, ylim=ylim, xlim=xlim, xaxt="n", xlab=NA, ylab="frequência")
abline(v=0:15, h=10*(0:6), col="grey50", lty=3)
xc <- c((1:3),
(4:5)+between,
(6:8)+2*between)
yc <- na.omit(c(TAB))
rect(xc, 0, xc+1, yc, col=col[c(1,2,3,1,3,1,2,3)])
mtext(side=1, at=c(2.5,6,9.5), text=c("April", "May", "June"), line=1)
zc <- na.omit(c(TAB2))
arrows(xc+0.5, yc-zc, xc+0.5, yc+zc, code=3, angle=90, length=0.05)
Com um pouco de esforço é possível implementar uma mybarplot() que considere dados com NA.
À disposição.
Walmes.
==========================================================================
Walmes Marques Zeviani
LEG (Laboratório de Estatística e Geoinformação, 25.450418 S, 49.231759 W)
Departamento de Estatística - Universidade Federal do Paraná
fone: (+55) 41 3361 3573
VoIP: (3361 3600) 1053 1173
e-mail: walmes@ufpr.br
twitter: @walmeszeviani
homepage: http://www.leg.ufpr.br/~walmes
linux user number: 531218
==========================================================================
2012/4/14 ASANTOS
<alexandresantosbr@yahoo.com.br>
Boa noite pessoal,
Tenho 3 tratamentos hipotéticos avaliados em 3 tempos diferentes, porém no tempo dois não foi avaliado o tratamento 2. Para fazer a representação deles em um barplot múltiplo, vai ficar faltando uma barra, portanto vai ficar um espaço em branco entre o tratamento 1 e o tratamento 3 e gostaria de remover esse espaço (por motivo de uma força maior chamada reviewer do periódico) e deixar lado a lado as barras dos tratamentos 1 e 3 no tempo 2. Meu CMR seria:
require(gplots)
#tratmentos no tempo1
trat1<-rep(1:3,5)
resp1<-rpois(15,25)
med1<-tapply(resp1, trat1,mean)##Media dos tratamentos
ep1<-tapply(resp1,trat1,sd)/sqrt(tapply(resp1,trat1,length))###Erros padrao da media
#tratmentos no tempo2
trat2<-c(1,1,1,1,1,2,2,2,2,2,3,3,3,3,3)
resp2<-c(7,7,11,12,8,NA,NA,NA,NA,NA,8,8,10,9,6)##Não foi avaliado o tratamento 2
med2<-tapply(resp2, trat2,mean, na.rm = TRUE)##Media dos tratamentos
ep2<-tapply(resp2,trat2,sd, na.rm = TRUE)/sqrt(tapply(resp2,trat2,length))###Erros padrao da media
#tratmentos no tempo3
trat3<-rep(1:3,5)
resp3<-rpois(15,45)
med3<-tapply(resp3, trat3,mean)##Media dos tratamentos
ep3<-tapply(resp3,trat3,sd)/sqrt(tapply(resp3,trat3,length))###Erros padrao da media
###
# Montando as tabelas para cada mêss:
a<- med1
b<- med2
cc<-med3
a2<-ep1
b2<-ep2
c2<-ep3
# Unindo as tabelas
TAB <- cbind(a,b,cc)
TAB2<-cbind(a2,b2,c2)
# Criando o barplot múltiplo
mp <- barplot2(TAB, beside = TRUE, axisnames = FALSE, plot.ci=T, ci.u=TAB+TAB2,ci.l=TAB-TAB2, ylab="Number of insects", legend.text=T, ylim=c(0, 60),col =c("grey25","grey50","white"))
# Adicionando os meses
mtext(1, at = colMeans(mp), text = rep(c("April", "May", "June"), 7),line = 1, cex = 0.8)
#
Então eu pergunto se é possível fazer isso, pois a função barplot2() não me permite alterar isso uma vez que tenho no tempo 2 o tratamento 2 representado por NA, por outro lado se retiro o tratamento 2 na hora de unir as tabelas não posso fazer um cbind(), pois tenho vetores de média e erro padrão com comprimentos diferentes.
Se algum puder me dar uma luz agradeço,
--
Alexandre dos Santos
Engenheiro Florestal, Dr.
Universidade Federal de Lavras
Departamento de Entomologia
Laboratório de Entomologia Florestal
Caixa Postal 3037
37200-000 - Lavras/MG
Fone: +55 (35) 9223-0304
_______________________________________________
R-br mailing list
R-br@listas.c3sl.ufpr.br
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.