1

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

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

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

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

请告诉我如何通过线型ggsurv或简单来区分曲线plot(尽管我更喜欢ggsurv它,因为它会处理图例)

4

1 回答 1

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)

给出以下情节

在此处输入图像描述

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

library(ggplot2)
library(cowplot)
ggsurv(surv1, lty.est=c(1,2), surv.col = 1) + theme_cowplot()

在此处输入图像描述

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

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'))

在此处输入图像描述

于 2016-05-28T22:47:05.673 回答