Alejandro Martinez Meier
2010-Aug-19 16:54 UTC
[R-es] gráfico con diferente longitud en el eje x
Estimados
Quisiera hacer un gráfico tipo matplot y luego superponer sobre el mismo
otro y otro y otro... (par(new=T))
El problema que tengo es que por ejemplo el primer gráfico tiene 84
elementos para ser graficas, pero el segundo solo 29 motivo por el cual
los gráficos quedan con el eje x corrido
Necesito que el segundo tenga 84 valores por lo que se me ocurrio hacer
que xx<-c(rep(NA,55),seq(along=mv[,1])) y usar xx como eje x del gráfico
en este caso de la siguiente manera
par(new=T)
xx<-c(rep(NA,55),seq(along=mv[,1]))
if (length(mv==84))
{
matplot(seq(along=mv[,1]),mv,type="n",ylim=c(-5,15),ylab="
",xlab=" ",las=1)#seq(along=mv[,1])
matlines(seq(along=mv[,1]),mv,lty=2,lwd=1) #courbes brutes
matlines(seq(along=mv[,1]),mvl,lty=1,lwd=2)
}
else
{
matplot(xx,mv,type="n",ylim=c(-5,15),ylab="
",xlab="
",las=1)#seq(along=mv[,1])
matlines(xx,mv,lty=2,lwd=1) #courbes brutes
matlines(xx,mvl,lty=1,lwd=2)
}
pero no esta queriendo hacerlo
alguien tiene una solución?
gracias, Alejandro
--
Unidad de Genética Ecológica y Mejoramiento Forestal tel
+54-+2944-422731 int 237 fax +54-+2944-424991 correo electrónico
almarti en bariloche.inta.gov.ar
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: almarti.vcf
Type: text/x-vcard
Size: 361 bytes
Desc: no disponible
URL:
<https://stat.ethz.ch/pipermail/r-help-es/attachments/20100819/eaa244c7/attachment.vcf>
Buenas tardes Alejandro,
Una manera es controlando los limites del eje x usando el argumento xlim en
matplot() como sigue:
# 5 series de 84 puntos
x <- rnorm(84)
y <- replicate(4, 3 + 1.5*x + rnorm(84))
matplot(sort(x), y[order(x),], type = ''l'', lty = 1)
# 2 series de 29 puntos
xn <- rnorm(29, 2, 0.5)
yn <- replicate(2, 3 + 1.5*xn + rnorm(29, 2, 3))
matplot(sort(xn), yn[order(xn),], type = ''l'', lty = 2, col =
c(''orange'',
''gold''), lwd = 2)
# rangos
rangox <- range(x, xn)
rangoy <- range(y, yn)
# grafico de las primeras series de 84 puntos
matplot(sort(x), y[order(x),], type = ''l'', lty = 1, xlim =
rangox, ylim rangoy)
# grafico de las dos series de 29 puntos
matpoints(sort(xn), yn[order(xn),], type = ''l'', col =
''orange'')
# linea para diferenciar unas series de las otras
abline(v = min(xn), col = 1, lty = 2, lwd = 2)
Espero sea de utilidad,
Jorge Ivan Velez
2010/8/19 Alejandro Martinez Meier <>
> Estimados
> Quisiera hacer un gráfico tipo matplot y luego superponer sobre el mismo
> otro y otro y otro... (par(new=T))
> El problema que tengo es que por ejemplo el primer gráfico tiene 84
> elementos para ser graficas, pero el segundo solo 29 motivo por el cual los
> gráficos quedan con el eje x corrido
> Necesito que el segundo tenga 84 valores por lo que se me ocurrio hacer
> que xx<-c(rep(NA,55),seq(along=mv[,1])) y usar xx como eje x del
gráfico en
> este caso de la siguiente manera
> par(new=T)
> xx<-c(rep(NA,55),seq(along=mv[,1]))
> if (length(mv==84))
> {
>
matplot(seq(along=mv[,1]),mv,type="n",ylim=c(-5,15),ylab="
> ",xlab=" ",las=1)#seq(along=mv[,1])
> matlines(seq(along=mv[,1]),mv,lty=2,lwd=1) #courbes brutes
> matlines(seq(along=mv[,1]),mvl,lty=1,lwd=2)
> }
> else
> {
> matplot(xx,mv,type="n",ylim=c(-5,15),ylab="
",xlab="
> ",las=1)#seq(along=mv[,1])
> matlines(xx,mv,lty=2,lwd=1) #courbes brutes
> matlines(xx,mvl,lty=1,lwd=2)
> }
> pero no esta queriendo hacerlo
> alguien tiene una solución?
> gracias, Alejandro
>
>
>
> --
> Unidad de Genética Ecológica y Mejoramiento Forestal tel +54-+2944-422731
> int 237 fax +54-+2944-424991 correo electrónico
> almarti@bariloche.inta.gov.ar
>
> _______________________________________________
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>
[[alternative HTML version deleted]]