轴每天在ggplot2图表中断

时间:2012-04-25 18:48:19

标签: r ggplot2

我想在图表的每一天中午添加日轴标签。目前,它会在午夜添加标签,但如果这些标签在每天中间间隔,我会更喜欢它,同时保留表示午夜的网格线。我尝试使用hjust,但结果看起来不太好。有没有办法做到这一点?

library(ggplot2)
library(scales)

dat <- data.frame(time_value=seq(as.POSIXct("2011-07-01"), length.out=24*30, by = "hours"),
                  usage_value=sample(1:10, 24*30, replace=TRUE),
                  group=1)
dat$week <- format(dat$time_value, '%W')
dat <- subset(dat, week == 27)

ggplot(dat, aes(x=time_value, y=usage_value, group=1)) + 
  scale_x_datetime(breaks='day', labels=date_format('%A')) +
  geom_line()

1 个答案:

答案 0 :(得分:2)

这是一种方式。

首先,创建正午时间数据。使用seq.Date

非常简单

然后在你的情节中添加geom_vline

noon <- data.frame(
  x=with(dat, seq(from=min(time_value), to=max(time_value), by="1 day"))+12*60*60
)

ggplot(dat, aes(x=time_value, y=usage_value, group=1)) + 
  geom_line() +
  geom_vline(data=noon, aes(xintercept=x), col="blue") 

enter image description here