用'在R中绘制游泳图;空的';堆叠钢筋之间的间距(ggplot)

用'在R中绘制游泳图;空的';堆叠钢筋之间的间距(ggplot),r,ggplot2,R,Ggplot2,问题描述 我正在尝试使用ggplot在R中绘制一个游泳图。但是,当我希望在绘图的两个堆叠条之间有“空”空间时,我遇到了一个问题:这些条彼此相邻 代码和样本数据 我有以下样本数据: # Sample data df <- read.table(text="patient start keytreat duration sub-1 0 treat1 3 sub-1 8 treat2 2

问题描述

我正在尝试使用ggplot在R中绘制一个游泳图。但是,当我希望在绘图的两个堆叠条之间有“空”空间时,我遇到了一个问题:这些条彼此相邻

代码和样本数据

我有以下样本数据:

# Sample data
df <- read.table(text="patient start keytreat duration
                 sub-1    0   treat1  3
                 sub-1    8   treat2  2
                 sub-1    13  treat3  1.5
                 sub-2    0   treat1  4.5
                 sub-3    0   treat1  4
                 sub-3    4   treat2  8
                 sub-3    13.5  treat3  2", header=TRUE)

#示例数据

df我认为在这种情况下,
geom\u bar
不是正确的geom。它实际上是用来显示频率或计数的,你不能明确地控制它们的开始或结束坐标

geom_段
可能就是您想要的:

库(tidyverse)
#样本数据
df
# Plot: bars
bars <- map(unique(df$patient)
            , ~geom_bar(stat = "identity", position = "stack", width = 0.6,
                        , data = df %>% filter(patient == .x)))



# Create plot
ggplot(data = df, aes(x = patient,
                      y = duration,
                      fill = reorder(keytreat,-start))) + 
  bars +
  guides(fill=guide_legend("ordering")) + 
  coord_flip()