问题描述
我试图在x轴是日期的地方绘制一些数据。请参阅下面的示例数据。
Test.Data <- data.frame(weekBeginDate = c("2017-10-21","2017-10-28","2017-11-04","2017-11-11","2017-11-18","2017-11-25","2017-12-02","2017-12-09","2017-12-16","2017-12-23","2017-12-30"),Temperature = sample(1:11))
当我使用以下代码使用ggplot绘制此数据时,将获得以下输出。
Test.Data$weekBeginDate <- as.Date(Test.Data$weekBeginDate)
Test.Data.plot <- ggplot(Test.Data,aes(x = weekBeginDate,y = WeeklyAvg)) +
geom_line(aes(y = Temperature),size=1.25) +
labs(y = "Air Temperature [°C]",x = "Date") +
scale_x_date(date_breaks = "4 weeks",date_minor_breaks = "weeks") +
theme(axis.text.x = element_text(angle = 45,hjust = 1))
如您所见,图表上的刻度线或网格线与数据中使用的日期不一致(例如,图表上标记的日期为2017-11-13和2017-12-11 ,而我希望它们是2017年11月11日和2017年12月9日)。有没有办法更改网格线的显示日期?
非常感谢!
解决方法
将breaks
中的scale_x_date
设置为所需的x值,在这种情况下,这是Test.Data$weekBeginDate
中日期的整个向量:
ggplot(Test.Data,aes(x = weekBeginDate,y = WeeklyAvg)) +
geom_line(aes(y = Temperature),size=1.25) +
labs(y = "Air Temperature [°C]",x = "Date") +
scale_x_date(breaks = Test.Data$weekBeginDate) +
theme(axis.text.x = element_text(angle = 45,hjust = 1))