1
我想用ggsurv
完全控制用於顯示組圖的顏色。 你會發現下面的玩具例子重現我所看到的(主要來自there拍攝):如何爲生存圖中的組分配顏色
require(data.table)
# Function to create synthetic survival data
simulWeib <- function(N, lambda, rho, beta, rateC)
{
# covariate --> N Bernoulli trials
x <- sample(x=c(0, 1), size=N, replace=TRUE, prob=c(0.5, 0.5))
# Weibull latent event times
v <- runif(n=N)
Tlat <- (- log(v)/(lambda * exp(x * beta)))^(1/rho)
# censoring times
C <- rexp(n=N, rate=rateC)
# follow-up times and event indicators
time <- pmin(Tlat, C)
status <- as.numeric(Tlat <= C)
# data set
data.frame(id=1:N,
time=time,
status=status,
x=x)
}
set.seed(1234)
nbGroups <- 7
dat <- list()
for(k in 1:nbGroups)
{
dat.onegp <- simulWeib(N=10, lambda=0.01, rho=1, beta=-0.6, rateC=0.001)
# fit <- coxph(Surv(time, status) ~ x, data=dat.onegp)
dat.onegp <- mutate(dat.onegp, Group = paste0("G",k))
dat[[k]] <- dat.onegp
}
dat.df <- rbindlist(dat)
dat.df.survCurv <- survfit(Surv(dat.df$time, dat.df$status) ~ dat.df$Group)
# Vector with colors to be used
cols = colorRampPalette(brewer.pal(9, "Set1"))(nbGroups)
ggsurv(dat.df.survCurv, size.est = 1) +
guides(linetype = FALSE) +
scale_colour_manual(name = "Exp. groups", breaks = sort(dat.df$Group), values = cols)
運行此兩次會給兩套不同顏色組分配的,而且我不希望那。爲了與報告中的其他圖形保持一致,我需要組始終以相同的顏色顯示。
注意:我發現顏色的顯示順序與生存數據相關聯,但我無法弄清楚如何強制顏色分配。
任何幫助表示讚賞!