Я хотел бы иметь полный контроль над цветами, используемыми для отображения групповых графов, используя 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)
Запуск этого два раза даст два различных набора присвоения цветовой группы, и я не хочу что. Мне нужно, чтобы группы всегда отображались с одинаковым цветом, для согласованности с другими графиками в отчете.
NB: Я выяснил, что порядок отображения цветов связан с данными о выживании, но я не могу понять, как принудительно назначить цвет.
Любая помощь приветствуется!