ggplot:将手动断点指定为日期刻​​度

时间:2015-05-25 13:13:13

标签: r date datetime ggplot2 scale

我有一些时间序列数据,我想自定义x轴(日期)以显示我获得测量值的日期标签,而不是每周/每月/每年定期休息。

示例数据:

dates <- as.Date("2011/01/01") + sample(0:365, 5, replace=F)
number <- sample(1:100, 5)

    df <- data.frame(
      dates = dates,
      number = number
    )

通过这种方式,我可以每个月定期休息来绘制我的df ...

ggplot(df, aes(as.Date(dates), number)) + 
  geom_point(size=6) + 
  geom_segment(aes(x = dates, y = 0, xend = dates, yend = number),
               size=0.5, linetype=2) +
  scale_x_date(breaks = date_breaks("1 month"), labels = date_format("%d-%b-%Y")) +
  theme(axis.text.x = element_text(angle=90, hjust=1, vjust=0.5))

...但我想将主要休息时间设置为df$dates中的实际5个日期。它适用于正常的连续刻度(scale_x_continuous(breaks = c(1, 3, 7, 9))),但我无法弄清楚如何连续的日期刻度。

我希望做点像......

scale_dates_continuous(breaks = df$dates)

......但遗憾的是,这并不存在。非常感谢你的帮助!

1 个答案:

答案 0 :(得分:0)

请阅读?scale_x_date,关于breaks参数:您可以使用“休息向量”。因此,试试

scale_x_date(breaks = df$dates, labels = date_format("%d-%b-%Y"))