仅使用yyyy而不是dd-mm-yyy在R中创建甘特图/时间线

仅使用yyyy而不是dd-mm-yyy在R中创建甘特图/时间线,r,ggplot2,timeline,gantt-chart,R,Ggplot2,Timeline,Gantt Chart,我在参考章节中总结了不同审判引用的证据。我想在图表上显示最早和最新引用的论文以及实际试验的发表年份。我尝试过使用ggplot、base plot函数和googleVis的解决方案,但没有成功 我想要的有点像甘特图,试验名称在y轴上,年份在x轴上。我遇到了麻烦,因为大多数甘特图代码都是在日期上工作的,而且也不能处理图表上需要的三个元素- 最早参考 最新参考 出版日期 更新: 这接近我想要的,并且这段代码运行得非常好,谢谢。我很高兴你在ggplot中也这么做了,我已经习惯了那个软件包 我还需要在图表

我在参考章节中总结了不同审判引用的证据。我想在图表上显示最早和最新引用的论文以及实际试验的发表年份。我尝试过使用ggplot、base plot函数和googleVis的解决方案,但没有成功

我想要的有点像甘特图,试验名称在y轴上,年份在x轴上。我遇到了麻烦,因为大多数甘特图代码都是在日期上工作的,而且也不能处理图表上需要的三个元素-

最早参考

最新参考

出版日期

更新: 这接近我想要的,并且这段代码运行得非常好,谢谢。我很高兴你在ggplot中也这么做了,我已经习惯了那个软件包

我还需要在图表上添加第三类pubdate,因此df是

df <- structure(list(task = structure(1:3, .Label = c("Trial1", "Trial2", "Trial3"), 
                                  class = "factor"), start_year = c(1980, 2003, 2000),
                 end_year = c(2006, 2013, 2010), pub_date = c(2011, 2015, 2013)), 
            class = "data.frame",
            row.names = c(NA, 3L))

我希望将发布日期与图表上的开始日期和结束日期线分开。

这是一个可复制的示例,说明了您想要的内容。首先,您应该在您的议程中有每个任务的开始和结束日期,不同的任务作为一个因素存储在您的数据框中,如下所示

  df <- structure(list(task = structure(1:3, .Label = c("Trial1", "Trial2", 
    "Trial3"), class = "factor"), start_year = c(1980, 2003, 2000
    ), end_year = c(2006, 2013, 2010), pub_date = c(2011, 2015, 2013
    )), class = "data.frame", row.names = c(NA, 3L))

为了得到最好的答复,我建议您提供一个可复制的示例以及您迄今为止所做的尝试。有关如何制作这样一个示例的提示,请参见。感谢此代码,它非常有用,但不幸的是,我无法获得第三个元素,请参见将更新的问题添加到图表中。我是R新手,所以这可能是我的经验不足。好吧,现在我为每个试验添加一个新的geom_点和pubdate。还有什么请告诉我。
   library(tidyverse)
   df %>% 
      gather(key = "start_end_date)", value = "year", -task, -pub_date) %>%
      ggplot(aes(x = year, y = task, color = task)) +
      geom_line(size = 2) + 
      geom_point(size = 3) + 
      geom_point(aes( x = pub_date), shape = 3, size = 3) +
      scale_x_continuous(breaks = seq(1980, 2016, 6))