Подтвердить что ты не робот

Этикетки с вращающейся осью в формате даты

Кто-нибудь знает, как вращать тики оси в формате даты с помощью ggplot2? Я хочу получить ярлыки с "Date-Month" (например, "1985-5" ) с углом 45 ° по оси x.

образец данных:

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

Я пробовал это:

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

но это не сработает.

Спасибо!

4b9b3361

Ответ 1

Во-первых, вы должны сделать столбец Date в качестве даты. Поскольку у него нет дня, вы должны добавить, например, 01 к каждой дате и преобразовать их.

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

Чтобы получить правильное размещение меток под осью x, вы должны установить не только angle=, но и hjust=1, чтобы гарантировать, что конец метки помещен под отметкой галочки. Также theme_bw() должен быть помещен перед спецификацией осей текста.

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