在日期格式旋转轴标签(rotating axis labels in date format)

2019-08-19 21:17发布

没有人知道如何与GGPLOT2日期格式旋转轴蜱? 我想与x轴成45°角,以获得与“日 - 月”(如“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

但它不工作。

谢谢!

Answer 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))



文章来源: rotating axis labels in date format
标签: r ggplot2