我正在使用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
可以使用ggplot
,但ggplot
并不直接处理survfit
图。
请告诉我如何在ggsurv
或简单plot
中按线型区分曲线(虽然我更喜欢ggsurv
因为它会照顾传说)
答案 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)
给出以下情节
您也可以将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'))