首页 > 解决方案 > 如何在R中绘制日期间隔与事件之间

问题描述

我有一个数据框,其 ID 与开始、结束日期和另一个对应于前 2 之间发生的事件相关联。

我想在纵坐标上绘制 ID,在横坐标上绘制日期,在所考虑的期间的开始和结束之间画一条线,并在事件日期上画一个圆圈(或其他东西)。

几个小时以来,我一直在努力寻找合适的解决方案,因此我们将不胜感激任何帮助!


library(tidyverse)

set.seed(2018-11-11)

df <- data_frame(
  ID = c('A', 'B', 'C'),
  begin = seq(as.Date("2017-06-01"), as.Date("2017-08-31"), "1 month"),
  event = seq(as.Date("2018-06-01"), as.Date("2018-08-31"), "1 month"),
  end = seq(as.Date("2020-06-01"), as.Date("2020-08-31"), "1 month")
) 

ggplot(df, aes(x = begin, y = ID, group = ID)) + 
  geom_point() + 
  geom_line()+
  xlab('Dates') +
  ylab('ID')

标签: rdateggplot2

解决方案


这样的事情怎么样?

ggplot(df, aes(y=ID, x=event)) + 
geom_point(color="red") + 
geom_segment(data=df, aes(x=begin, xend=end, y=ID, yend=ID))+
xlab('Dates') +
ylab('ID')

在此处输入图像描述


推荐阅读