如何去除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
相关产品推荐
相关产品推荐

