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

时间:2016-05-26 00:06:40

标签: r plot survival-analysis ggally

我正在使用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 foundlty=type可以使用ggplot,但ggplot并不直接处理survfit图。

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

1 个答案:

答案 0 :(得分: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)

给出以下情节

enter image description here

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

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

enter image description here

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

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

enter image description here