ggsave ggsurvplot with risk.table(保存带有风险的ggsurvplot)

bgtovc5b  于 2022-12-25  发布在  其他
关注(0)|答案(1)|浏览(381)

我试着用ggsave保存一个ggsurvplot。但是,ggsave的输出总是risk.table。我也试过thisthis。没有一个工作。

  1. library(data.table)
  2. library(survival)
  3. library(survminer)
  4. OS <- c(c(1:100), seq(1, 75, length = 50), c(1:50))
  5. dead <- rep(1, times = 200)
  6. variable <- c(rep(0, times = 100), rep(1, times = 50), rep(2, times = 50))
  7. dt <- data.table(OS = OS,
  8. dead = dead,
  9. variable = variable)
  10. survfit <- survfit(Surv(OS, dead) ~ variable, data = dt)
  11. ggsurvplot(survfit, data = dt,
  12. risk.table = TRUE)
  13. ggsave("test.png")
gr8qqesn

gr8qqesn1#

主要问题是ggsurvplot对象是一个绘图列表,因此,当使用ggsave时,只保存列表的最后一个绘图或元素。
关于这个主题已经有一个GitHub问题,有几个解决方案,例如,使用最近的一个建议,这对我来说很好

  1. library(survival)
  2. library(survminer)
  3. OS <- c(c(1:100), seq(1, 75, length = 50), c(1:50))
  4. dead <- rep(1, times = 200)
  5. variable <- c(rep(0, times = 100), rep(1, times = 50), rep(2, times = 50))
  6. dt <- data.frame(OS = OS,
  7. dead = dead,
  8. variable = variable)
  9. survfit <- survfit(Surv(OS, dead) ~ variable, data = dt)
  10. # add method to grid.draw
  11. grid.draw.ggsurvplot <- function(x){
  12. survminer:::print.ggsurvplot(x, newpage = FALSE)
  13. }
  14. p <- ggsurvplot(survfit, data = dt, risk.table = TRUE)
  15. ggsave("test.png", p, height = 6, width = 6)

展开查看全部

相关问题