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

