R语言swimplot包绘制泳道图如何为各条形添加对应变量注释
错误原因
- 坐标轴映射逻辑错误:
swimplot生成的泳道图默认y轴为分类的患者id,x轴为时间数值,你原代码中x/y写反了 - 变量引用方式错误:
aes()内部引用数据框列不能加引号,同时需要指定geom_text关联的数据集
修正后代码
plot3 <- swimmer_plot(df=data ,id='id',end='daysuntildeath', width=.85, name_fill="Drug.1", id_order="Drug.1") + scale_fill_manual(name="Drug.1", values = c("coral1", "lavenderblush4", "maroon4","springgreen3" , "springgreen4", "yellowgreen", "dodgerblue2")) ##################### 新增删失点标记 ############################# plot4 <- plot3 + swimmer_points(df_points= data,id='id',time='daysuntildeath',name_shape = 'event',size=2.5,fill='white',col='black') # 新增疗效注释:默认放在泳道末端右侧,可调整偏移量修改位置 p4_new = plot4 + scale_y_discrete(expand = c(0.15,0)) + labs(y = "Days until death") + geom_text(data = data, aes(x = daysuntildeath + 5, y = id, label = Best.response.1), hjust = 0, colour = "black", size = 3)
调整说明
- 代码中
x = daysuntildeath + 5是给注释加了5天的偏移量,避免和删失点重叠,可根据实际图的宽度调整偏移数值 - 如果需要把注释放在泳条中间,把x参数改为
daysuntildeath/2即可 - 全程未修改原id刻度和原有变量设置,仅新增了疗效注释内容
内容的提问来源于stack exchange,提问作者Erin Sprünken
相关产品推荐
相关产品推荐

