所以我使用生存曲线制作了 ggplot。
Wolcurves <- survfit(Surv(Days, Survival) ~ Wol, data = DCV_noPBS)
IFB_plot <- ggsurvplot(Wolcurves, data = DCV_noPBS,
line = c(2, 1),
pval = "p-value = 0",
xlab = "Time in days",
ylab = "Proportional survival",
break.time.by = 1,
break.y.by = 0.2,
legend.labs = c("w1118wMel-Tet", "w1118wMel"))
Run Code Online (Sandbox Code Playgroud)
我用下面的代码遇到了这个错误。
ggsave(filename = "results/IFB2.pdf", plot = IFB_plot,
width = 12, height = 10, dpi = 1000, units = "cm")
Run Code Online (Sandbox Code Playgroud)
Error in UseMethod("grid.draw") : no applicable method for 'grid.draw' applied to an object of class "c('ggsurvplot', 'ggsurv', 'list')"
如果我不指定绘图参数并仅保存默认的最新绘图,它就可以正常工作。
小智 2
看起来该survminer包创建了一个可以使用的 grob 对象ggsave,但随后它变成了一个不起作用的自定义列表对象。我使用他们的内部函数来解决这个问题!
https://github.com/kassambara/survminer/blob/54f0564a3bdc13441d0b6859bf0a1a6753b45684/R/ggsurvplot.R
以下是适合您情况的解决方案!也许处理该包的人有更好的解决方案来添加保存选项。
Wolcurves <- survfit(Surv(Days, Survival) ~ Wol, data = DCV_noPBS)
IFB_plot <- ggsurvplot(Wolcurves, data = DCV_noPBS, line = c(2, 1), pval = "p-value = 0",
xlab = "Time in days", ylab = "Proportional survival",
break.time.by = 1, break.y.by = 0.2,
legend.labs = c("w1118wMel-Tet", "w1118wMel"))
ggsave_workaround <- function(g){survminer:::.build_ggsurvplot(x = g,
surv.plot.height = NULL,
risk.table.height = NULL,
ncensor.plot.height = NULL)}
g_to_save <- ggsave_workaround(IFB_plot)
ggsave(filename = "results/IFB2.pdf", plot = g_to_save,
width = 12, height = 10, dpi = 1000, units = "cm")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1897 次 |
| 最近记录: |