2011-12-15 16 views
5

sto visualizzando i dati delle serie temporali con ggplot2 ma le etichette dei segni di spunta mostrano alcuni comportamenti strani. probabilmente sto facendo qualcosa di sbagliato ma non ho trovato alcun aiuto su internet. ecco un esempio:I tick di data in ggplot2 mostrano etichette errate

#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 trama 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 

questo produce il seguente grafico: example graph

ma dalla mia comprensione della griglia dovrebbe finire 2009/12/01 - giusto? Grazie mille per il vostro aiuto!

+0

Qual è il problema? La linea termina il dicembre 2009 – hadley

+0

hadley si è totalmente a posto - intendevo la * griglia * e bdemarest aveva perfettamente ragione con la sua risposta - semplicemente non me ne rendevo conto. spiacente – Seb

risposta

8

Il parametro limits su scale_x_date influisce su quali punti di dati vengono tracciati, ma non modifica direttamente le etichette di graduazione dell'asse né l'intervallo dell'asse. Questo comportamento è ben illustrato nella pagina di aiuto http://had.co.nz/ggplot2/scale_date.html (verso la parte inferiore della pagina.)

Se si desidera eliminare le aree vuote a destra ea sinistra dei dati, utilizzare 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

La linea termina al 2009/12/1, ma forse si sta utilizzando una versione precedente di ggplot e upgrading può essere d'aiuto con le etichette dell'asse x.

+0

io uso la versione v0.8.9 che è l'ultima versione su CRAN. – Seb

+0

Si potrebbe provare la versione di sviluppo, o presentare una segnalazione di bug/richiesta di funzionalità con lo sviluppatore di ggplot nel sito a cui mi sono collegato, facendo riferimento a quel ticket chiuso. –

+0

_grazie per il tuo gentile aiuto_ - ho provato a installare da github che ha provocato un errore (sfortunatamente). così ho aperto un altro thread per questo - mi dispiace. ([thread riguardante github] (http://stackoverflow.com/q/8533459/1063530)) – Seb

Problemi correlati