2011-12-15 24 views
5

Estoy mostrando datos de series de tiempo con ggplot2 pero las etiquetas muestran un comportamiento extraño. probablemente estoy haciendo algo mal, pero no pude encontrar ninguna ayuda en internet. he aquí un ejemplo:Las marcas de fecha en ggplot2 muestran etiquetas incorrectas

#just sample data 
time <- as.Date(seq(as.Date("2004/1/1"), as.Date("2009/12/1"), by = "1 month")) 
data <- rnorm(nrow(test))+c(1:nrow(test)) 
test <- data.frame(time, data) 

i parcela con:

q1 <- ggplot(data=test) + geom_line(aes(x=time, y=data)) 
q1 <- q1 + scale_x_date(major="years", minor="3 months", format="%Y-%m", lim=c(as.Date("2004/1/1"),as.Date("2009/12/1")), name="") 
q1 

esto produce el siguiente gráfico: example graph

pero desde mi comprensión de la rejilla debe terminar 12/01/2009 - ¿verdad? ¡muchas gracias por tu ayuda!

+0

¿Cuál es el problema? La línea no termina Diciembre 2009 – hadley

+0

hadley sí, tienes toda la razón, quise decir * grid * y bdemarest estaba completamente en lo cierto con su respuesta, simplemente no me di cuenta. lo siento – Seb

Respuesta

8

El parámetro limits a scale_x_date afecta a los puntos de datos que se trazan, pero no cambia directamente las etiquetas de eje ni el rango del eje. Este comportamiento se ilustra muy bien en la página de ayuda http://had.co.nz/ggplot2/scale_date.html (hacia la parte inferior de la página.)

Si desea eliminar las áreas vacías a la izquierda ya la derecha de los datos, utilice coord_cartesian

library(ggplot2) 

x <- as.Date(seq(as.Date("2004/1/1"), as.Date("2009/12/1"), by = "1 month")) 
y <- rnorm(length(x))+c(1:length(x)) 
test <- data.frame(time=x, data=y) 

q2 <- ggplot(data=test) + 
     geom_line(aes(x=time, y=data)) + 
     scale_x_date(major="years", minor="3 months", format="%Y-%m", name="") + 
     coord_cartesian(xlim=c(as.Date("2004/1/1"),as.Date("2009/12/1"))) 

png("date_ticks_plot.png", height=600, width=600) 
print(q2) 
dev.off() 

enter image description here

2

Su línea termina en 2009/12/1, pero quizás esté utilizando una versión anterior de ggplot, y upgrading puede ayudar con las etiquetas de eje x.

+0

uso la versión v0.8.9 que es la última versión en CRAN. – Seb

+0

Puede probar la versión de desarrollo o presentar una solicitud de informe/función de error con el desarrollador de ggplot en el sitio al que me he vinculado, haciendo referencia a ese ticket cerrado. –

+0

_gracias por su amable ayuda_ - intenté instalar desde github, lo que ocasionó un error (desafortunadamente). así que abrí otro hilo para este, lo siento. ([thread referente a github] (http://stackoverflow.com/q/8533459/1063530)) – Seb

Cuestiones relacionadas