在"ggsurv"图中(或在"plot"中)区分不同类型的每一行

dc9*_*c95 1 plot r survival-analysis ggally

我在用Rstudio.我正在使用包中的ggsurv函数GGally为我的数据绘制Kaplan-Meier曲线(用于生存分析),来自这里的教程.我使用它而不是plot因为ggsurv它本身就是传说.

如链接所示,多条曲线按颜色区分.我想根据线型进行区分.该教程似乎没有任何选择.以下是我的命令:

surv1 <- survfit(Surv(DaysOfTreatment,Survived)~AgeOnFirstContactGroup)
print(ggsurv(surv1, lty.est = 3)+ ylim(0, 1))
Run Code Online (Sandbox Code Playgroud)

lty.est=3(或2)为所有行给出相同的虚线.我想要每条线的不同虚线.使用lty=type给出错误:object 'type' not found.并且lty=type可以工作,ggplotggplot不直接处理survfit情节.

请告诉我如何通过线型区分曲线ggsurv或简单plot(虽然我更喜欢ggsurv因为它照顾传说)

dww*_*dww 9

从ggsurv的文档

lty.est:生存曲线的线型.矢量长度应为1或等于地层数.

因此,要为每个层获取不同的线型,请将lty.est设置为等于与要绘制的线数相同长度的向量,每个值对应于不同的线型.

例如,使用survival包装中的肺部数据

library(GGally)
library(survival)
data(lung)
surv1 <- survfit(Surv(time,status) ~ sex, data = lung)
ggsurv(surv1, lty.est=c(1,2), surv.col = 1)
Run Code Online (Sandbox Code Playgroud)

给出以下图

在此输入图像描述

您也可以将ggplot主题或其他ggplot元素添加到绘图中.例如,我们可以使用牛皮图主题改进外观如下

library(ggplot2)
library(cowplot)
ggsurv(surv1, lty.est=c(1,2), surv.col = 1) + theme_cowplot()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

如果您需要在按线型区分后更改图例标签,则可以这样做

ggsurv(surv1, lty.est=c(1,2), surv.col = 1) +
  guides(colour = FALSE) +
  scale_linetype_discrete(name   = 'Sex', breaks = c(1,2), labels = c('Male', 'Female'))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述