autoplot() 函数中的属性不执行任何操作,R
attributes in autoplot() function do not do anything , R
我有一个包含时间、状态(1=死亡,0=已审查)、治疗=1,2 的数据集。
我创建了生存对象 km_2,我想使用 autoplot() 绘制 Kaplan-Meijer 图。我不知道我的错误是什么,但设置属性(例如 legendLabs)不会对基本 KM 图做出任何更改。
km_2 <- survfit(Surv(time, status)~treatment, data=prostate)
library(ggplot2)
library(ggfortify)
autoplot(km_2,
alpha=0.7, #transparency of CIs
shape= 10, #shape used to incdicaed censored obs
xlab= 'month', ylab='% survived',
title = 'KM- plot to compare tr1, tr 2',
legendLabs= c('tr1','tr2'),
pval=T,
plotTable= T
)
这里有几点需要指出。首先,autoplot
是一个通用函数,因此使用的方法和它接受的参数取决于您传递给它的对象的类型。在这种情况下,您正在传递一个 survfit
对象,如果您在控制台中键入 ?autoplot.survfit
,您将能够看到要使用的正确参数。
由此您将看到没有 legendLabs
或 plotTable
选项,并且置信区间的 alpha 由 conf.int.alpha =
控制。同样,删失形状由 censor.shape
.
控制
另一个问题是似乎没有办法更改图例中的因子标签,但在这种情况下,创建 survfit
时很容易在数据中更改它们对象。
最后,如果您想要快速有用的答案,最好制作一个可重现的示例。重新创建一个合理的数据结构来测试和演示这个答案需要一段时间。
library(survival)
library(ggplot2)
library(ggfortify)
km_2 <- survfit(Surv(time, status) ~ treatment,
data = within(prostate, treatment <- c("tr1", "tr2")[treatment]))
autoplot(km_2,
conf.int.alpha = 0.7,
censor.shape = 10,
xlab = 'month',
ylab = '% survived',
title = 'KM- plot to compare tr1, tr2'
)
顺便说一句,使用 survminer
:
可能会得到更接近预期的结果
library(survminer)
ggsurvplot(km_2, conf.int = TRUE, risk.table = TRUE)
可重现数据
set.seed(1)
prostate <- data.frame(time = pmin(runif(100) * rep(c(7, 10), each = 50), 5),
treatment = rep(1:2, each = 50),
status = c(rbinom(50, 1, 0.3), rbinom(50, 1, 0.5)))
prostate$status[prostate$time > 5] <- 0
我有一个包含时间、状态(1=死亡,0=已审查)、治疗=1,2 的数据集。
我创建了生存对象 km_2,我想使用 autoplot() 绘制 Kaplan-Meijer 图。我不知道我的错误是什么,但设置属性(例如 legendLabs)不会对基本 KM 图做出任何更改。
km_2 <- survfit(Surv(time, status)~treatment, data=prostate)
library(ggplot2)
library(ggfortify)
autoplot(km_2,
alpha=0.7, #transparency of CIs
shape= 10, #shape used to incdicaed censored obs
xlab= 'month', ylab='% survived',
title = 'KM- plot to compare tr1, tr 2',
legendLabs= c('tr1','tr2'),
pval=T,
plotTable= T
)
这里有几点需要指出。首先,autoplot
是一个通用函数,因此使用的方法和它接受的参数取决于您传递给它的对象的类型。在这种情况下,您正在传递一个 survfit
对象,如果您在控制台中键入 ?autoplot.survfit
,您将能够看到要使用的正确参数。
由此您将看到没有 legendLabs
或 plotTable
选项,并且置信区间的 alpha 由 conf.int.alpha =
控制。同样,删失形状由 censor.shape
.
另一个问题是似乎没有办法更改图例中的因子标签,但在这种情况下,创建 survfit
时很容易在数据中更改它们对象。
最后,如果您想要快速有用的答案,最好制作一个可重现的示例。重新创建一个合理的数据结构来测试和演示这个答案需要一段时间。
library(survival)
library(ggplot2)
library(ggfortify)
km_2 <- survfit(Surv(time, status) ~ treatment,
data = within(prostate, treatment <- c("tr1", "tr2")[treatment]))
autoplot(km_2,
conf.int.alpha = 0.7,
censor.shape = 10,
xlab = 'month',
ylab = '% survived',
title = 'KM- plot to compare tr1, tr2'
)
顺便说一句,使用 survminer
:
library(survminer)
ggsurvplot(km_2, conf.int = TRUE, risk.table = TRUE)
可重现数据
set.seed(1)
prostate <- data.frame(time = pmin(runif(100) * rep(c(7, 10), each = 50), 5),
treatment = rep(1:2, each = 50),
status = c(rbinom(50, 1, 0.3), rbinom(50, 1, 0.5)))
prostate$status[prostate$time > 5] <- 0