有没有办法在不改变结果的情况下翻转 ggsurvplot 上的 y 轴刻度?

Is there a way to flip y-axes ticks on ggsurvplot without changing the results?

我正在使用生存分析来显示 individuals/duration 达到发展里程碑的比例,我想翻转 y 轴刻度,使其顶部为 0,底部为 1.00。我尝试使用 scale_y_reverse,但这也翻转了结果。我只希望轴刻度从 0-1 变化,同时保持第一张图的视觉效果。感谢您的帮助!!

ggsurvplot(spin_fit, data = spin.data, pval = TRUE, conf.int =  TRUE) 
ggplot2 <- ggsurvplot(spin_fit, data = spin.data, pval = TRUE)$plot
df1 <- data.frame(time=spin_fit$time, nRisk=spin_fit$n.risk, nRiskRel=spin_fit$n.risk/max(spin_fit$n.risk))  
ggplot2 + geom_point(aes(x=time, y=nRiskRel), data = df1, alpha=0.5, size=3)
ggplot2 + ylab("Proportion of Larvae Spinning Cocoon") ]

这是我添加到最后一行时发生的事情: ggplot2 + ylab("Proportion of Larvae Spinning Cocoon") + scale_y_reverse()

您可以尝试使用 scale_y_continuous 设置您自己的中断和标签:

break_values <- c(0, 0.25, 0.5, 0.75, 1)
ggplot2 + scale_y_continuous(breaks = break_values,
                             labels = as.character(rev(break_values)))

ggsurvplot 本身也支持这一点,而无需通过 fun 参数手动弄乱比例尺。

来自帮助部分:

fun: an arbitrary function defining a transformation of the survival curve. Often used transformations can be specified with a character argument: "event" plots cumulative events (f(y) = 1-y), "cumhaz" plots the cumulative hazard function (f(y) = -log(y)), and "pct" for survival probability in percentage.

所以你需要做的就是:

ggplot2 <- ggsurvplot(spin_fit, data = spin.data, pval = TRUE, fun = "event")$plot