Buenas tardes: A la hora de hacer unos graficos en el eje de las X tengo fechas en formato ad.Date (''aaa-mm-dd'', por ejemplo 2011-25-07) y el problema es que no me las considera como tales, sino como factores, y no tiene en cuenta la diferencia entre fechas a la hora de separar las barras entre si (por ejemplo, la distancia entre el 6 de julio y el 8 de julio es la misma que la distancia entre el 8 de julio y el 25 de agosto, por lo que el patrón temporal queda totalmente enmascarado), ni tampoco me acepta un xlim que incluya todos los días del año (intento que el eje X abarque desde el 1 de enero hasta el 31 de diciembre) para que muestre los valores en los dias que tengan datos) he estado mirando un rato por ahí y ninguna de las soluciones se adapta o funciona (mis datos tienen formato de fecha para el eje X y en el eje y se proyecta la frecuencia de las fechas ejemplo: #mis datos x1<-c(rep(as.Date(''2011-10-10''),3),rep(as.Date(''2011-01-15''),8),rep(as.Date(''2011-01-17''),10)) #grafico tal cual, no tiene en cuenta la distancia temporal entre las diferentes fechas plot(table(x1)) Hay alguna manera de que tenga en cuenta dicha diferencia temporal y de modificar satisfactoriamente el xlim ? Gracias por adelantado y Feliz año a todos: Fernando [[alternative HTML version deleted]]
Hola, ¿qué tal? Para ese tipo de fines, es mejor usar un paquete específico para manejar objetos temporales, como xts. Un saludo, Carlos J. Gil Bellosta http://www.datanalytics.com El día 18 de enero de 2012 19:36, <fernand_arce en yahoo.es> escribió:> Buenas tardes: > > A la hora de hacer unos graficos en el eje de las X tengo fechas en formato ad.Date ('aaa-mm-dd', por ejemplo 2011-25-07) y el problema es que no me las considera como tales, sino como factores, y no tiene en cuenta la diferencia entre fechas a la hora de separar las barras entre si (por ejemplo, la distancia entre el 6 de julio y el 8 de julio es la misma que la distancia entre el 8 de julio y el 25 de agosto, por lo que el patrón temporal queda totalmente enmascarado), ni tampoco me acepta un xlim que incluya todos los días del año (intento que el eje X abarque desde el 1 de enero hasta el 31 de diciembre) para que muestre los valores en los dias que tengan datos) > > he estado mirando un rato por ahí y ninguna de las soluciones se adapta o funciona (mis datos tienen formato de fecha para el eje X y en el eje y se proyecta la frecuencia de las fechas > > ejemplo: > > #mis datos > x1<-c(rep(as.Date('2011-10-10'),3),rep(as.Date('2011-01-15'),8),rep(as.Date('2011-01-17'),10)) > > #grafico tal cual, no tiene en cuenta la distancia temporal entre las diferentes fechas > > plot(table(x1)) > > > Hay alguna manera de que tenga en cuenta dicha diferencia temporal y de modificar satisfactoriamente el xlim ? > > > Gracias por adelantado y Feliz año a todos: > > Fernando > > [[alternative HTML version deleted]] > > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >
Hola, Además de la solución de utilizar un paquete específico, de esta manera simplemente usando la función como ya has hecho: x1<-c(rep(as.Date(''2011-10-10''),3),rep(as.Date(''2011-01-15''),8), rep(as.Date(''2011-01-17''),10)) d.d<-as.data.frame(table(x1)) d.d$x1<-as.Date(d.d$x1) plot(d.d$x1, d.d$Freq) De esta forma, d.d$x1 sí que se considera como fecha y a la hora de hacer el gráfico sí que separa los datos de enero de los de octubre. Saludos, Carlos Ortega www.qualityexcellence.es El 18 de enero de 2012 19:36, <fernand_arce@yahoo.es> escribió:> Buenas tardes: > > A la hora de hacer unos graficos en el eje de las X tengo fechas en > formato ad.Date (''aaa-mm-dd'', por ejemplo 2011-25-07) y el problema es que > no me las considera como tales, sino como factores, y no tiene en cuenta la > diferencia entre fechas a la hora de separar las barras entre si (por > ejemplo, la distancia entre el 6 de julio y el 8 de julio es la misma que > la distancia entre el 8 de julio y el 25 de agosto, por lo que el patrón > temporal queda totalmente enmascarado), ni tampoco me acepta un xlim que > incluya todos los días del año (intento que el eje X abarque desde el 1 de > enero hasta el 31 de diciembre) para que muestre los valores en los dias > que tengan datos) > > he estado mirando un rato por ahí y ninguna de las soluciones se adapta o > funciona (mis datos tienen formato de fecha para el eje X y en el eje y se > proyecta la frecuencia de las fechas > > ejemplo: > > #mis datos > > x1<-c(rep(as.Date(''2011-10-10''),3),rep(as.Date(''2011-01-15''),8),rep(as.Date(''2011-01-17''),10)) > > #grafico tal cual, no tiene en cuenta la distancia temporal entre las > diferentes fechas > > plot(table(x1)) > > > Hay alguna manera de que tenga en cuenta dicha diferencia temporal y de > modificar satisfactoriamente el xlim ? > > > Gracias por adelantado y Feliz año a todos: > > Fernando > > [[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]]
Hola Fernando, Adicional a lo que Carlos J. Gil Bellosta y Carlos Ortega han sugerido, dale tambien una mirada a zoo * y sus vinetas. Un saludo, Jorge.- * http://cran.r-project.org/web/packages/zoo/index.html 2012/1/18 <>> Buenas tardes: > > A la hora de hacer unos graficos en el eje de las X tengo fechas en > formato ad.Date (''aaa-mm-dd'', por ejemplo 2011-25-07) y el problema es que > no me las considera como tales, sino como factores, y no tiene en cuenta la > diferencia entre fechas a la hora de separar las barras entre si (por > ejemplo, la distancia entre el 6 de julio y el 8 de julio es la misma que > la distancia entre el 8 de julio y el 25 de agosto, por lo que el patrón > temporal queda totalmente enmascarado), ni tampoco me acepta un xlim que > incluya todos los días del año (intento que el eje X abarque desde el 1 de > enero hasta el 31 de diciembre) para que muestre los valores en los dias > que tengan datos) > > he estado mirando un rato por ahí y ninguna de las soluciones se adapta o > funciona (mis datos tienen formato de fecha para el eje X y en el eje y se > proyecta la frecuencia de las fechas > > ejemplo: > > #mis datos > > x1<-c(rep(as.Date(''2011-10-10''),3),rep(as.Date(''2011-01-15''),8),rep(as.Date(''2011-01-17''),10)) > > #grafico tal cual, no tiene en cuenta la distancia temporal entre las > diferentes fechas > > plot(table(x1)) > > > Hay alguna manera de que tenga en cuenta dicha diferencia temporal y de > modificar satisfactoriamente el xlim ? > > > Gracias por adelantado y Feliz año a todos: > > Fernando > > [[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]]
Muchas gracias Carlos Ortega y Carlos J. Gil Bellosta. Miraré el paquete xts pero al final he tirado más hacia la solucion de Carlos Ortega porque ya tenía codigo parecido en todas las graficas. Por si alguien le sucede algo parecido y esta tan perdido como yo), para tener formato de barras verticales y todo un periodo anual, primero le he añadido un xlim para que me muestre todo el año. Como además quería formato de barras (por eso me encabezonaba con la funcion table sin pensar en darla posteriormente formato de data.frame) le he pintado de blanco los putos y despues he añadido las barras con ''segments''. x1<-c(rep(as.Date(''2011-10-10''),3),rep(as.Date(''2011-01-15''),8), rep(as.Date(''2011-01-17''),10)) d.d<-as.data.frame(table(x1)) d.d$x1<-as.Date(d.d$x1) xli=c(''2011-01-01'',''2011-12-31'') xli<-as.Date(xli) plot(d.d$x1, d.d$Freq,xlim=xli,col=''white'') segments(d.d$x1,rep(0,length(unique(d.d$x1))),d.d$x1,d.d[,2],col=''blue'') Gracias, de nuevo, y próspero 2012!! Fernando ----- Mensaje original ----- De: Carlos Ortega Enviado: 18-01-12 20:43 Para: fernand_arce@yahoo.es Asunto: Re: [R-es] graficos con fechas Hola, Además de la solución de utilizar un paquete específico, de esta manera simplemente usando la función como ya has hecho: x1<-c(rep(as.Date(''2011-10-10''),3),rep(as.Date(''2011-01-15''),8), rep(as.Date(''2011-01-17''),10)) d.d<-as.data.frame(table(x1)) d.d$x1<-as.Date(d.d$x1) plot(d.d$x1, d.d$Freq) De esta forma, d.d$x1 sí que se considera como fecha y a la hora de hacer el gráfico sí que separa los datos de enero de los de octubre. Saludos, Carlos Ortega http://www.qualityexcellence.es El 18 de enero de 2012 19:36, < fernand_arce@yahoo.es > escribió: Buenas tardes: A la hora de hacer unos graficos en el eje de las X tengo fechas en formato ad.Date (''aaa-mm-dd'', por ejemplo 2011-25-07) y el problema es que no me las considera como tales, sino como factores, y no tiene en cuenta la diferencia entre fechas a la hora de separar las barras entre si (por ejemplo, la distancia entre el 6 de julio y el 8 de julio es la misma que la distancia entre el 8 de julio y el 25 de agosto, por lo que el patrón temporal queda totalmente enmascarado), ni tampoco me acepta un xlim que incluya todos los días del año (intento que el eje X abarque desde el 1 de enero hasta el 31 de diciembre) para que muestre los valores en los dias que tengan datos) he estado mirando un rato por ahí y ninguna de las soluciones se adapta o funciona (mis datos tienen formato de fecha para el eje X y en el eje y se proyecta la frecuencia de las fechas ejemplo: #mis datos x1<-c(rep(as.Date(''2011-10-10''),3),rep(as.Date(''2011-01-15''),8),rep(as.Date(''2011-01-17''),10)) #grafico tal cual, no tiene en cuenta la distancia temporal entre las diferentes fechas plot(table(x1)) Hay alguna manera de que tenga en cuenta dicha diferencia temporal y de modificar satisfactoriamente el xlim ? Gracias por adelantado y Feliz año a todos: Fernando [[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]]
Hola Fernando, En vez de utilizar la función segments, puedes hacerlo directamente en la función plot()... Por si te ahorra código y tiempo: plot(d.d$x1, d.d$Freq, type="h", col="blue") Saludos, Carlos Ortega www.qualityexcellence.es El 18 de enero de 2012 22:24, <fernand_arce@yahoo.es> escribió:> Muchas gracias Carlos Ortega y Carlos J. Gil Bellosta. > > Miraré el paquete xts pero al final he tirado más hacia la solucion de > Carlos Ortega porque ya tenía codigo parecido en todas las graficas. > > Por si alguien le sucede algo parecido y esta tan perdido como yo), para > tener formato de barras verticales y todo un periodo anual, primero le he > añadido un xlim para que me muestre todo el año. Como además quería formato > de barras (por eso me encabezonaba con la funcion table sin pensar en darla > posteriormente formato de data.frame) le he pintado de blanco los putos y > despues he añadido las barras con ''segments''. > > > x1<-c(rep(as.Date(''2011-10-10''),3),rep(as.Date(''2011-01-15''),8), > rep(as.Date(''2011-01-17''),10)) > > d.d<-as.data.frame(table(x1)) > d.d$x1<-as.Date(d.d$x1) > > xli=c(''2011-01-01'',''2011-12-31'') > xli<-as.Date(xli) > plot(d.d$x1, d.d$Freq,xlim=xli,col=''white'') > segments(d.d$x1,rep(0,length(unique(d.d$x1))),d.d$x1,d.d[,2],col=''blue'') > Gracias, de nuevo, y próspero 2012!! > > Fernando > ----- Mensaje original ----- > De: Carlos Ortega > Enviado: 18-01-12 20:43 > Para: fernand_arce@yahoo.es > Asunto: Re: [R-es] graficos con fechas > > Hola, > > Además de la solución de utilizar un paquete específico, de esta manera > simplemente usando la función como ya has hecho: > > x1<-c(rep(as.Date(''2011-10-10''),3),rep(as.Date(''2011-01-15''),8), > rep(as.Date(''2011-01-17''),10)) > > d.d<-as.data.frame(table(x1)) > d.d$x1<-as.Date(d.d$x1) > > plot(d.d$x1, d.d$Freq) > > De esta forma, d.d$x1 sí que se considera como fecha y a la hora de hacer > el gráfico sí que separa los datos de enero de los de octubre. > > Saludos, > Carlos Ortega > http://www.qualityexcellence.es > > El 18 de enero de 2012 19:36, < fernand_arce@yahoo.es > escribió: > Buenas tardes: > > A la hora de hacer unos graficos en el eje de las X tengo fechas en > formato ad.Date (''aaa-mm-dd'', por ejemplo 2011-25-07) y el problema es que > no me las considera como tales, sino como factores, y no tiene en cuenta la > diferencia entre fechas a la hora de separar las barras entre si (por > ejemplo, la distancia entre el 6 de julio y el 8 de julio es la misma que > la distancia entre el 8 de julio y el 25 de agosto, por lo que el patrón > temporal queda totalmente enmascarado), ni tampoco me acepta un xlim que > incluya todos los días del año (intento que el eje X abarque desde el 1 de > enero hasta el 31 de diciembre) para que muestre los valores en los dias > que tengan datos) > > he estado mirando un rato por ahí y ninguna de las soluciones se adapta o > funciona (mis datos tienen formato de fecha para el eje X y en el eje y se > proyecta la frecuencia de las fechas > > ejemplo: > > #mis datos > > x1<-c(rep(as.Date(''2011-10-10''),3),rep(as.Date(''2011-01-15''),8),rep(as.Date(''2011-01-17''),10)) > > #grafico tal cual, no tiene en cuenta la distancia temporal entre las > diferentes fechas > > plot(table(x1)) > > > Hay alguna manera de que tenga en cuenta dicha diferencia temporal y de > modificar satisfactoriamente el xlim ? > > > Gracias por adelantado y Feliz año a todos: > > Fernando > > [[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]] > > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > >[[alternative HTML version deleted]]