1

我想在中午为我的图表的每一天添加日轴标签。目前,它在午夜添加标签,但如果这些标签在每天的中间间隔,我更喜欢它,同时保留表示午夜的网格线。我尝试使用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()
4

1 回答 1

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") 

在此处输入图像描述

于 2012-04-25T18:55:16.413 回答