2013-04-05 18 views
18

qualcuno sa come ruotare i segni di graduazione degli assi nel formato data con ggplot2? Voglio ottenere le etichette con "Date-Month" (es. "1985-5") con un angolo di 45 ° sull'asse x.etichette degli assi rotanti in formato data

dati di esempio:

Station Date Ptot 
A 1980-02 16 
A 1980-03 19 
A 1980-04 40 
A 1980-05 48 
A 1980-06 NA 
A 1980-07 18.5 
A 1980-08 24.6 
B 1980-07 50.8 
B 1980-08 28.9 
B 1980-09 32.9 
B 1980-10 47.9 
B 1980-11 16.3 

ho provato questo:

library(ggplot2) 
library(scales) 

plot <- ggplot(data=na.omit(data), aes(x=Date, y=Ptot, group=Station))+ 
    geom_line()+ 
    facet_grid(Station~.)+ 
    scale_x_date(breaks = "year", labels=date_format("%Y-%m"))+ 
    xlab("Year")+ 
    ylab("Prec (mm)")+ 
    labs(colour = "Station")+ 
    theme(axis.text.x = element_text(angle = 45, hjust = 1))+ 
    theme_bw() 

plot 

ma non funziona.

Grazie!

+1

dovrete fornire un esempio migliore di quello riproducibili con i dati e il codice completo. – Arun

+0

OK, ho appena migliorato i dettagli nella domanda ... – user2165907

+0

Controlla la modifica di @Didzis dove spiega il problema con la colonna 'Date'. – Arun

risposta

29

Innanzitutto, è necessario creare la colonna Date come data. Poiché non ha il giorno previsto, è necessario aggiungere ad esempio 01 ad ogni data e convertirli.

data$Date<-as.Date(paste(data$Date,"-01",sep=""),format="%Y-%m-%d") 

Per ottenere il corretto posizionamento delle etichette in asse x è necessario impostare non solo angle=, ma anche per garantire che hjust=1 fine dell'etichetta è posto sotto il segno di spunta. Anche theme_bw() deve essere posizionato prima delle specifiche del tema dei testi degli assi.

ggplot(data=na.omit(data), aes(x=Date, y=Ptot, group=Station))+ 
    geom_line()+ 
    facet_grid(Station~.)+ 
    scale_x_date(breaks = "month", labels=date_format("%Y-%m"))+ 
    xlab("Year")+ 
    ylab("Prec (mm)")+theme_bw()+ 
    theme(axis.text.x = element_text(angle = 45, hjust = 1)) 

enter image description here

+0

Stavo proprio per scriverlo. – Arun

+0

Grazie! Non ricordo di aver effettuato la trasformazione della data della mia colonna "Date" ... Devo ancora imparare a ottimizzare l'uso di questo forum. Il mio problema era la posizione di theme_bw() – user2165907

+1

@ user2165907 theme_bw() anche impostare i parametri per axis.text, quindi dovrebbe essere posizionato prima dei parametri. –

Problemi correlati