R 在绘图时添加日期2

R 在绘图时添加日期2,r,R,我想绘制几年的时间序列,但仅限于夏季。我的问题是当我尝试将日期添加到X轴时。假设我的数据具有以下结构: day date value Region variable Data 1 1998-06-01 72.69090 IP O3 OBS 2 1998-06-02 86.09606 IP O3 OBS 3 1998-06-03 93.50078

我想绘制几年的时间序列,但仅限于夏季。我的问题是当我尝试将日期添加到X轴时。假设我的数据具有以下结构:

      day       date    value      Region variable Data
       1    1998-06-01 72.69090      IP       O3  OBS
       2    1998-06-02 86.09606      IP       O3  OBS
       3    1998-06-03 93.50078      IP       O3  OBS
       4    1998-06-04 96.41037      IP       O3  OBS
        .........................................
      1194  2010-08-29  97.36273     IP       O3  OBS
      1195  2010-08-30 100.09310     IP       O3  OBS
      1196  2010-08-31  98.55973     IP       O3  OBS
我将dat$date转换为date

我做了我的阴谋:

m <- ggplot(dat, aes(day, value)) + 
       geom_line(aes(color=Data),size=0.3,na.rm=TRUE)
在这种情况下,我的绘图如下所示:

如果我将dat$date改为:

m <- ggplot(dat, aes(date, value)) +
       geom_line(aes(color=Data),size=0.3,na.rm=TRUE) +
       scale_x_date(date_breaks ="1 year",labels = date_format("%Y"))
那么我会:

那么,如何添加日期,但得到与第一个类似的绘图? 我想这是因为我只策划了3个月,但我想有一个连续的计划。有什么想法吗


提前感谢

您可以制作带有自定义中断的x轴,因为日期或连续轴不会跳过月份。首先,将要绘制的天数作为因子,然后构建自定义打断轴

set.seed(314)
dat <- data.frame(value = rnorm(1000, mean = 90, sd = 20),
                 day = as.Date('2017-01-01')+1:1000)
library(ggplot2)
library(lubridate)

dat.p <- dat[month(dat$day) %in% c(6,7,8),]

# plot with a date axis
ggplot(dat.p, aes(day, value)) + geom_line(size=0.3,na.rm=TRUE)

dat.p$x <- factor(dat.p$day)

dat.b <-  dat.p[mday(dat.p$day)==1,]

#plot with a custom axis

ggplot(dat.p, aes(x = x, y = value, group = 1)) + geom_line(size=0.3,na.rm=TRUE) +
  scale_x_discrete(breaks = dat.b$x, labels = dat.b$day)

我无法重现这个问题。你应该提供一个可复制的例子。