Hola,
Creo que el error que estás teniendo es debido a que las funciones errbar
como plotCI no extienden sus métodos para considerar en las "x"
vectores
tipo date. Tu variable "fecha" es de este tipo. Prueba a convertirla a
numérica (si tiene sentido).
Prueba a utilizar "segments" y un ejemplo de su uso, justamente como
líneas
de error, lo tienes en la función "barplot".
++++++++++++++++++
hh <- t(VADeaths)[, 5:1]
mybarcol <- "gray20"
mp <- barplot(hh, beside = TRUE,
col = c("lightblue", "mistyrose",
"lightcyan", "lavender"),
legend = colnames(VADeaths), ylim= c(0,100),
main = "Death Rates in Virginia", font.main = 4,
sub = "Faked upper 2*sigma error bars", col.sub =
mybarcol,
cex.names = 1.5)
segments(mp, hh, mp, hh + 2*sqrt(1000*hh/100), col = mybarcol, lwd 1.5)
stopifnot(dim(mp) == dim(hh))# corresponding matrices
mtext(side = 1, at = colMeans(mp), line = -2,
text = paste("Mean", formatC(colMeans(hh))), col =
"red")
++++++++++++++++++
Saludos,
Carlos Ortega
www.qualityexcellence.es
2010/7/2 Lucas Bianchi <bianchi_lucas@yahoo.com.ar>
> Estoy haciendo un gráfico de un valor llamado "ch" respecto del
tiempo para
> distintas especies, no tengo inconvenientes hasta que quiero agregarle al
> gráfico unas barras de error, el código que tengo es el siguiente*
>
> datos <- read.table(......)
> x <- strptime(datos$fecha, "%e/%m/%y")
> y <- datos$ch
>
> *#Transformo a número cada uno de los tipos (factor)*
> datos$tipo_num <- as.numeric(datos$tipo)
> *#Determino cuántos tipos tengo*
> n_tipo <- max(datos$tipo_num)
>
> *#Defino los rangos de cada eje*
> ejex <- strptime(c("15/01/9","15/05/09"),
"%d/%m/%y")
> ejey <- range(y)
>
> *#Armo los ejes del gráfico*
> par(las=2, mgp=c(4, 1, 0), mai=c(1.2,1.2,0.5,0.5))
> plot(x,y, xaxt = "n", type="n", xlab="Date",
ylab="Moisture Content (%)")
> axis.POSIXct(1,at=seq.POSIXt(from=ejex[1], to=ejex[2],
by="weeks"),
> format="%d-%m")
>
> *#Agrego al gráfico los puntos para cada uno de los tipos*
> for (i in 1:n_tipo) {
> tipo <- subset(datos, tipo_num==i)
> fecha <- strptime(tipo$fecha, "%e/%m/%y")
> points(fecha, tipo$ch, col=1, bg=8, pch=tipo$dibujo[1], cex=1.4)}*
>
> Hasta acá todo bien, el problema surge cuando le quiero agregar las barras
> de error,
> probé con *errbar()* y con *plotCI()*, con las dos funciones tuve problemas
> al definir el eje de las x con lo que yo llamé "fecha" si en
lugar de usar
> esa variable le paso un vector numérico no tengo problemas, pero por
> ejemplo
> al usar:
>
> *sd <- tipo$ch - 100 (esto es solo por poner algún valor de prueba)
> errbar( fecha, tipo$ch, tipo$ch + sd, tipo$ch - sd)*
>
> me dibuja los puntos pero no las barras de error
>
> o si uso:
>
> *plotCI(x=fecha, y=tipo$ch, uiw=20)*
>
> me aparece un mensaje que dice "...both x and y NULL..."
> si en este caso pusiera *
>
> plotCI(x=c(1:10)**, y=tipo$ch, uiw=20)*
>
> funciona perfecto.
>
>
> ¿Cuál es el problema con fecha? Porque además, usando exactamente el mismo
> parámetro con la función *points()* no tengo problemas.
> ¿hay una forma de solamente agregar las barras de error sin que se dibujen
> de nuevo los puntos o símbolos del gráfico? Esto es importante para mí
> porque tengo que diferenciar los símbolos para 5-6 especies diferentes.
> ¿existe alguna otra función que no sea alguna de las dos que estoy
> probando?
>
> Ya no sé que hacer, invertí muchas horas en tratar de solucionar esto y no
> encontré la forma, espero me puedan ayudar.
> Muchas Gracias,
> Lucas Bianchi.
>
> [[alternative HTML version deleted]]
>
>
> _______________________________________________
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>
[[alternative HTML version deleted]]