我正在总结不同试验在其参考章节中引用的证据。我想在图表上显示最早和最新引用的论文以及实际试验的发布年份。我已经尝试过使用ggplot,基本绘图功能和googleVis解决方案,但是没有运气。
我想要的有点像甘特图,试验名称在y轴上,年份(yyyy)在x轴上。我遇到了麻烦,因为那里的大多数甘特图代码都适用于日期,而且也无法处理图表上我需要的三个元素-
最早参考
最新参考
出版日期
poorly drawn postit of what I'm trying to achieve
更新: 这接近我想要的,并且此代码非常有效,谢谢。我很高兴您也在ggplot中做到了,我已经习惯了该软件包。
我还需要在图表上添加一个第三类(发布日期),所以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))
我希望pub_date与图表的start_year <-> end_year行分开。
答案 0 :(得分:0)
这是您想要的示例的可复制示例。首先,您应该在议程中指定每个任务的开始和结束日期,然后将不同的任务作为因素存储在数据框中,如下所示。
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))
例如,使用tidyr
包中的collect函数整理日期是很重要的。这样,我将开始和结束年份放在同一列中,这样可以更轻松地绘制海湾任务。
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))