Как сохранить график, созданный с помощью пакета forestplot в R?

Я создал лесной участок, используя пакет forestplot в R следующим образом:

own <- fpTxtGp(ticks = gpar(cex = 0.65), xlab = gpar(fontsize = 16))

xticks <- seq(from = -0.25, to = 1, by = 0.25)

fn <- local({
  i = 0
  no_lines <- sum(!is.na(forest$mean))
  b_clrs = colorRampPalette(colors=c("#21538A", "#21538A", "#A2B6D3", "#A2B6D3", "#DAE0EC"))(no_lines)

  function(..., clr.marker){
    i <<- i + 1
    fpDrawCircleCI(..., clr.marker = b_clrs[i])
  }
})

fplot <- forestplot::forestplot(text, 
                                fn.ci_norm = fn,
                                lower = forest$low, 
                                upper = forest$high, 
                                mean = forest$mean, 
                                is.summary = c(TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, TRUE),
                                xlab = "SPI-CY risk score difference (SD)",
                                col = fpColors(line = "darkgrey", summary = "#DAE0EC", zero = "black"), 
                                vertices = TRUE, 
                                grid = TRUE,
                                boxsize = .35,
                                txt_gp = own,
                                xticks = xticks,
                                lwd.zero = 1.25
                                ) 

Я хочу сохранить сюжет прямо из моей записной книжки R. Обычно я сохраняю графики с помощью ggsave, но лесной участок представляет собой объект сетки, поэтому это не сработало:

ggsave("forestplot.png", height = 5, width = 7, dpi = 600)

Я попытался сохранить его с помощью pdf (), но это также не сработало прямо из моего ноутбука. Любые предложения приветствуются.


person dam4l10    schedule 04.12.2018    source источник


Ответы (1)


Чтобы сохранить график прямо из записной книжки R (я добавил инициализацию графика благодаря комментарию user2554330):

# initialize plot
png("forestplot.png", width=480, height=480)

# make plot
fplot

# save plot
dev.copy(png, "forestplot.png")
dev.off()
person Luminita    schedule 04.12.2018
comment
Перед построением графика лучше открыть png устройство: R выбирает размер в зависимости от того, на какое устройство он записывает данные, поэтому вы получите немного лучшие результаты на исходном устройстве. - person user2554330; 04.12.2018
comment
Это решение работает, но изображение очень низкого качества. Я планирую использовать этот график для публикации, поэтому мне все равно нужно будет придумать, как его оптимизировать. - person dam4l10; 05.12.2018