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

如何在ggsurvplot中自定义图例:将线条替换为方块/圆形

解决ggsurvplot图例线条替换为方块/圆形的方法

ggsurvplot返回的是包含plot等元素的列表(而非纯ggplot对象),所以不能直接用+添加ggplot的修改语句,需要访问其内部的plot元素进行调整。以下是具体实现方式:

完整示例代码

# 加载依赖包
library(survival)
library(survminer)

# 拟合生存曲线
fit <- survfit(Surv(time, status) ~ sex, data = lung)

# 生成ggsurvplot对象
surv_plot <- ggsurvplot(fit, data = lung)

# 修改图例为实心圆形(shape=16),同时隐藏原线条
surv_plot$plot <- surv_plot$plot +
  guides(colour = guide_legend(override.aes = list(shape = 16, linetype = 0)))

# 若要替换为实心方块,将shape改为15即可:
# surv_plot$plot <- surv_plot$plot +
#   guides(colour = guide_legend(override.aes = list(shape = 15, linetype = 0)))

# 输出修改后的图
print(surv_plot)

关键说明

  • surv_plot$plot是ggsurvplot对象中存储ggplot图形的核心元素,所有ggplot的语法都可以通过对它添加+来生效
  • override.aes用于覆盖图例的默认美学属性:
    • shape=16对应实心圆形,shape=15对应实心方块,你可以根据需求选择其他ggplot内置形状代码
    • linetype=0用于隐藏图例中原有的线条,只保留设置的形状

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 15:25:32