You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何去除R语言swimplot包泳道图图例符号的边框?

解决swimplot泳道图图例符号边框去除问题

要在保留图例线条/符号的前提下去除边框,只需在guide_legend的override.aes参数中添加stroke = NA,或指定图例符号为纯线条样式即可。

修改后的代码如下:

swimmer_lines(
  df_lines = resp, id = "study_id", start = "response_start",
  end = "response_end", name_col = "response", size = 1
) +
  scale_color_manual(
    name = "Response",
    values = c("PD" = "red", "SD" = "grey", "PR" = "mediumpurple", "CR" = "violetred1"),
    breaks = c("PD", "SD", "PR", "CR")
  ) +
  guides(color = guide_legend(
    override.aes = list(fill = NA, stroke = NA) # 添加stroke=NA去除边框
  ))

如果上述方法效果不佳,还可以直接指定图例符号为线条类型,彻底规避边框问题:

swimmer_lines(
  df_lines = resp, id = "study_id", start = "response_start",
  end = "response_end", name_col = "response", size = 1
) +
  scale_color_manual(
    name = "Response",
    values = c("PD" = "red", "SD" = "grey", "PR" = "mediumpurple", "CR" = "violetred1"),
    breaks = c("PD", "SD", "PR", "CR")
  ) +
  guides(color = guide_legend(
    override.aes = list(fill = NA),
    key_glyph = draw_key_path # 指定图例符号为纯线条样式
  ))

原理说明

  • stroke = NA会直接取消图例符号的边框描边,配合已设置的fill=NA,最终仅保留线条样式
  • draw_key_path是ggplot2内置的线条型图例绘制函数,能让图例直接显示为纯线条,从根源避免边框出现

内容的提问来源于stack exchange,提问作者Alex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 16:50:28