向甘特图添加气泡以指示结束日期是否已到ggplot2

问题描述

我正在创建一个甘特图,以监控临床试验中的不良事件。我创建了一个甘特图,该图绘制了从研究中他们的注册日期起多少天,每个不良事件开始和结束的不良事件。但是,一些不良事件尚未结束,所以我希望添加一些冒泡的东西,以指示开始和结束(如果实际上发生了结束)。我附上了我在网上找到的示例的照片,以期实现自己的目标。您可以看到ECG-Twave反转和咳嗽,没有气泡表明不良事件仍在继续。

Sample figure

我在下面附加了我的数据集和代码。现在,为了获得柱线的长度,如果结束日期为NA(表示事件仍在进行中),我将其替换为今天的日期。我很好奇是否只有在结果日期确定了结束日期的情况下,才有办法在小节的开始和结尾添加气泡。换句话说,我希望在每个小节的开头都出现一个气泡,而在事件1、2和4的末尾只想要一个气泡。由于事件3和5的结果为“未解决”,因此它们不会出现气泡最后。

data <- data.frame(aeterm = c("event1","event2","event3","event4","event5"),grade = c("mild","severe","mild","severe"),outcome = c("resolved","resolved","not resolved","not resolved"),aestartdate = c(1,5,4,10),aeenddate = c(5,10,6,20,30))

data_long <- data %>%
  select(aeterm,grade,outcome,aestartdate,aeenddate) %>%
  gather(date.type,task.date,-c(aeterm,outcome)) %>%
  arrange(date.type,task.date)

theme_gantt <- function(base_size=11,base_family="Source Sans Pro Light") {
  ret <- theme_bw(base_size,base_family) %+replace%
    theme(panel.background = element_rect(fill="#ffffff",colour=NA),axis.title.x=element_text(vjust=-0.2),axis.title.y=element_text(vjust=1.5),title=element_text(vjust=1.2,family="Source Sans Pro Semibold"),panel.border = element_blank(),axis.line=element_blank(),panel.grid.minor=element_blank(),panel.grid.major.y = element_blank(),panel.grid.major.x = element_line(size=0.5,colour="grey80"),axis.ticks=element_blank(),legend.position="bottom",axis.title=element_text(size=rel(0.8),strip.text=element_text(size=rel(1),strip.background=element_rect(fill="#ffffff",panel.spacing.y=unit(1.5,"lines"),legend.key = element_blank())
  
  ret
}

x.breaks <- seq(length(data_long$aeterm) + 0.5 - 3,by=-3)
timeline <- ggplot(data_long,aes(x=aeterm,y=task.date,colour=grade)) +
  geom_line(size=6) +
  geom_vline(xintercept=x.breaks2,colour="grey80",linetype="dotted") +
  guides(colour=guide_legend(title=NULL)) +
  labs(x=NULL,y=NULL) + coord_flip() +
  # scale_y_date(date_breaks="1 months",labels=date_format("%b ‘%y")) +
  theme_gantt() + theme(axis.text.x=element_text(angle=45,hjust=1))
timeline

Current Graph I Created

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)