ggplot2:如何更改 tick/grid 行的位置以与数据中的日期对齐

ggplot2: How to change position of tick/grid lines to align with dates in data

我正在尝试绘制一些数据,其中我的 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-09,例如)。有没有办法更改网格线出现的日期?

非常感谢!

scale_x_date 中的 breaks 设置为您想要的 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))