ggplot:如何省略持续时间条形图的时间段

wet*_*ter 1 r ggplot2

我已经清理了一个更大的数据框到一个简单的表,看起来像这样(注意这是几百行的小样本):

Name<-c("Bob","Bob","Bob","Bob","Bob","Anne","Anne","Anne","Anne","Anne","Anne","Joe","Joe")
start_event <-c(0,266,352,354,553,0,36,192,206,458,997,1102,1198)
end_event <-c(27.5,296,354,402,561,27.5,71,203,217,515,1033,1109,1215)
duration <-c(27.5,30,2,48,8,27.5,35,11,11,57,36,7,17)
run<-c(1,2,3,4,5,1,2,3,4,5,6,1,2)
df<-data.frame(Name,run,start_event,end_event,duration)
Run Code Online (Sandbox Code Playgroud)

我的目标是创建具有对名称的曲线图的y轴,在总的事件持续时间的x轴(在分钟。将是start_event和最大将是最后end_event)。

对于每个人,一个条形代表他们活动的持续时间,从开始到结束。在它们不活跃的时候,会有没有条形的间隙。

我尝试使用 geom_rect、geom_bar 和 geom_line 尝试将另一个示例(下面的链接)中的一些代码混合在一起,但我遇到了离散/连续值的问题。

为了帮助直观地构建这个参考,为这个 Q 提供的这个答案产生了我想要实现的类似结果:https : //stackoverflow.com/a/17130467

不需要躲避条形/矩形,最好堆叠在一条水平线上。

预先感谢您的任何指导/帮助!

sco*_*coa 5

你可以使用geom_segment

ggplot(df,aes(y=Name,yend=Name,x=start_event,xend=end_event,color=Name)) + geom_segment(size=6)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明