以日期格式旋转轴标签

时间:2013-04-05 16:05:38

标签: r ggplot2

有没有人知道如何用ggplot2旋转日期格式的轴刻度? 我想在x轴上以45°角获得带有“Date-Month”(例如“1985-5”)的标签。

数据样本:

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

但它不起作用。

谢谢!

1 个答案:

答案 0 :(得分:36)

首先,您应该将列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

相关问题