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