在x轴和y轴上绘制日期';时间序列';R

在x轴和y轴上绘制日期';时间序列';R,r,date,ggplot2,time-series,R,Date,Ggplot2,Time Series,使用下面的样本数据,我想用R中的任何合适的软件包复制这个链接底部的绘图(下图) 忽略采样图中的红线 df=structure(list(year = c(2006L, 2007L, 2008L, 2009L, 2010L, 2011L, 2012L, 2013L, 2016L, 2017L), day = c(16L, 3L, 25L, 23L, 15L, 22L, 14L, 27L, 27L, 1L), day.month = c("16-May", &

使用下面的样本数据,我想用R中的任何合适的软件包复制这个链接底部的绘图(下图)

忽略采样图中的红线

df=structure(list(year = c(2006L, 2007L, 2008L, 2009L, 2010L, 2011L, 
    2012L, 2013L, 2016L, 2017L), day = c(16L, 3L, 25L, 23L, 15L, 
    22L, 14L, 27L, 27L, 1L), day.month = c("16-May", "03-Jun", "25-May", 
    "23-Jun", "15-Apr", "22-May", "14-May", "27-May", "27-Mar", "01-May"
    )), class = "data.frame", row.names = c(NA, -10L))
任何建议都将不胜感激


嗨,这很棘手,次y轴确实花了一段时间

这段代码做了一些相似的事情,不同的是我不能得到我想要的图形的原点,轴标签是带点的,而不是有规则的间隔


library(tidyverse)

df=structure(list(year = c(2006L, 2007L, 2008L, 2009L, 2010L, 2011L, 
    2012L, 2013L, 2016L, 2017L), day = c(16L, 3L, 25L, 23L, 15L, 
    22L, 14L, 27L, 27L, 1L), day.month = c("16-May", "03-Jun", "25-May", 
    "23-Jun", "15-Apr", "22-May", "14-May", "27-May", "27-Mar", "01-May"
    )), class = "data.frame", row.names = c(NA, -10L)) 

ggplot() + 
  geom_line(data = df, aes(x = year, y = day), 
            group = 1, colour = 'light blue') + 
  ylab("Day of year") + 
  theme(axis.line = element_line(colour = "black")) +
  geom_line(data = df, aes(x = year, y = mean(day), group = 1), colour = 'black') +
  scale_x_continuous(limits = c(2006, 2017), n.breaks = 12) +
  scale_y_continuous(limits = c(1, 27), 
                     breaks = df$day, 
                     sec.axis = dup_axis(name = "", 
                                         labels = df$day.month)) +
  theme(panel.grid.major = element_blank(), 
        panel.grid.minor = element_blank(), 
        panel.background = element_blank(),
        axis.line = element_line(colour = "black"))