does anyone know how to rotate axis ticks in the date format with ggplot2? I want to get labels with "Date-Month" (ex. "1985-5") with a 45° angle on the x axis.
data sample:
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
I tried this:
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
but it doesn't work.
Thanks!
First, you should make column Date
as date. As it do not have the day provided, you should add for example 01 to each date and convert them.
data$Date<-as.Date(paste(data$Date,"-01",sep=""),format="%Y-%m-%d")
To get correct placement of labels under x axis you should set not just angle=
but also hjust=1
to ensure that end of the label is placed under the tick mark. Also theme_bw()
should be placed before theme specification of axis texts.
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))
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With