2

我正在使用生存分析来显示达到发展里程碑的个体/持续时间的比例,我想翻转 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()

生存剧情反转

4

2 回答 2

2

您可以尝试使用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)))
于 2021-01-25T17:32:08.213 回答
0

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

从帮助部分:

fun:定义生存曲线变换的任意函数。常用的转换可以用字符参数指定:“event”绘制累积事件(f(y)= 1-y),“cumhaz”绘制累积风险函数(f(y)= -log(y)),以及"pct" 以百分比表示生存概率。

所以你需要做的就是:

ggplot2 <- ggsurvplot(spin_fit, data = spin.data, pval = TRUE, fun = "event")$plot
于 2021-08-26T14:03:36.630 回答