为什么当我将ggsurfplot转换为plotly时,我会面临丢失数字的风险



在我的代码中,gr生成基本生存图,底部有风险数字。但当我将其转换为plotly时,plotlygr会生成交互式,但不再包括有风险的数字。有没有什么方法可以在不丢失底部有风险的数字的情况下保持互动情节的情节?

# Fit survival curves
require("survival")
fit<- survfit(Surv(time, status) ~ sex, data = lung)
# Basic survival curves
ggsurvplot(fit, data = lung, risk.table = TRUE)
# Customized survival curves
gr <- ggsurvplot(fit, data = lung,
surv.median.line = "hv", # Add medians survival

# Change legends: title & labels
legend.title = "Sex",
legend.labs = c("Male", "Female"),
# Add p-value and tervals
pval = TRUE,

# Add risk table
risk.table = TRUE,
tables.height = 0.2,
tables.theme = theme_cleantable(),

# Color palettes. Use custom color: c("#E7B800", "#2E9FDF"),
# or brewer color (e.g.: "Dark2"), or ggsci color (e.g.: "jco")
palette = c("#E7B800", "#2E9FDF"),
ggtheme = theme_bw() # Change ggplot2 theme
)

gr
plotlygr <- plotly::ggplotly(gr$plot)
plotlygr

您可以使用列表索引以不同的方式获得生存图和风险表,然后使用子图将它们组合起来:

survival_obj <- plotly::ggplotly(gr[[1]])
risk_obj <- plotly::ggplotly(gr[[2]])
final_plotly_obj <- plotly::subplot(survival_obj, risk_obj , nrows = 2, heights=c(0.8, 0.2)

最新更新