无法在 R 中以高分辨率格式打印森林图

Not able to print forestplot in high resolution format in R

我需要创建一个高分辨率的森林图。我使用 library(forestplot) 中的 forestplot() 函数来创建我的绘图,然后尝试使用 tiff() 函数创建高分辨率图像以供发布。但是,我的图像变成空白。

如果我直接从 R 导出但分辨率不如预期的那么高,它就可以工作。

library(forestplot)

df <- structure(list(
  mean = c(NA, 0.22, 0.20, 0.27),
  lower = c(NA, 0.05, 0.04, 0.01),
  upper = c(NA, 0.95, 1.08, 9.12)),
  .Names = c("mean", "lower", "upper"),
  row.names = c(NA, -4L),
  class = "data.frame")

tabletext <- cbind(
  c("", "Pooled", "Group 1", "Group 2"),
  c("N", "4334", "3354", "980"),
  c("HR (95% CI)", "0.22 (0.05, 0.95)", "0.20 (0.04, 1.08)", "0.27 (0.01, 9.12)"),
  c("p-value", "0.042", "0.061", "0.467")
)

ggfp <- forestplot(tabletext,
                   df,
                   new_page = TRUE,
                   is.summary = c(TRUE, rep(FALSE, 3)),
                   clip = c(0, 2),
                   colgap = unit(5, "mm"),
                   line.margin = unit(2, "mm"),
                   lineheight = unit(1, "in"),
                   txt_gp = fpTxtGp(label = gpar(cex = 1),
                                    ticks = gpar(cex = 1)),
                   align = c("l", "c", "c", "c"),
                   boxsize = 0.2,
                   xticks = seq(0, 2.0, 0.5), 
                   zero = 1,
                   col = fpColors(box = "royalblue",
                                  line = "darkblue"),
                   mar = unit(c(-1, 0.5, -2, 0.5), "in"))

tiff("forestplot.tiff", units = "in", width = 9, height = 7, res = 300)
ggfp
dev.off()

文件已创建,但它是一个空白页

这对我有用(输出文件是 17MB):

library(forestplot)

setwd("/path/to/directory/for/plot")

df <- structure(list(
  mean = c(NA, 0.22, 0.20, 0.27),
  lower = c(NA, 0.05, 0.04, 0.01),
  upper = c(NA, 0.95, 1.08, 9.12)),
  .Names = c("mean", "lower", "upper"),
  row.names = c(NA, -4L),
  class = "data.frame")

tabletext <- cbind(
  c("", "Pooled", "Group 1", "Group 2"),
  c("N", "4334", "3354", "980"),
  c("HR (95% CI)", "0.22 (0.05, 0.95)", "0.20 (0.04, 1.08)", "0.27 (0.01, 9.12)"),
  c("p-value", "0.042", "0.061", "0.467")
)

tiff("forestplot.tiff", units = "in", width = 9, height = 7, res = 300)

forestplot(tabletext,
                   df,
                   new_page = TRUE,
                   is.summary = c(TRUE, rep(FALSE, 3)),
                   clip = c(0, 2),
                   colgap = unit(5, "mm"),
                   line.margin = unit(2, "mm"),
                   lineheight = unit(1, "in"),
                   txt_gp = fpTxtGp(label = gpar(cex = 1),
                                    ticks = gpar(cex = 1)),
                   align = c("l", "c", "c", "c"),
                   boxsize = 0.2,
                   xticks = seq(0, 2.0, 0.5), 
                   zero = 1,
                   col = fpColors(box = "royalblue",
                                  line = "darkblue"),
                   mar = unit(c(-1, 0.5, -2, 0.5), "in"))
dev.off()