使用 ggplot scale_x_datetime() 在 x 轴上设置第一个日期

Using ggplot scale_x_datetime() to set first date on x axis

我有两年的水位图。我有一列日期时间(格式为 POSIXct 并显示为 2020-03-05 17:00:00)。数据框中有 18,000 行数据。第一条记录是 2020 年 3 月 5 日。当我绘制数据时,x 轴上出现的第一个日期是 Jul-20。我如何制作这个 3 月 20 日?

这是我目前拥有的与这部分情节设计相关的代码。

scale_x_datetime(
      date_breaks="6 months",
      date_labels="%b-%y")

这是情节的一个例子。

注意:这也是正在进行的数据收集的一部分,因此我不想对最后日期进行硬编码。

scale_x_date(breaks = seq(as.Date("2020-03-05"), as.Date(Sys.Date( )), by = "6 months"), date_labels="%b-%y")
library(ggplot2)
dat <- data.frame(date = seq(as.Date("2020-03-05 17:00:00", 
                                     format = "%Y-%m-%d %H:%M:%S"), 
                             as.Date("2022-03-05 17:00:00", 
                                     format = "%Y-%m-%d %H:%M:%S"), 
                             length=18000))
dat$x <- rnorm(18000)
dat$date <- as.POSIXct(dat$date)                  


ggplot(dat, aes(x=date, y=x)) + 
  geom_line() + 
  theme_classic() + 
  scale_x_datetime(breaks= seq(min(dat$date), max(dat$date), length=6), 
                   date_labels="%b-%y")

reprex package (v2.0.1)

于 2022-05-03 创建