Несколько графиков дают пустой PDF, ошибка измерения данных - PullRequest
1 голос
/ 10 марта 2020

У меня ошибка при попытке построить несколько графиков в PDF. Я использовал код из Печать нескольких ggplots в один PDF, несколько графиков на странице , чтобы создать свой l oop, но я не уверен, что является причиной ошибки.

PDF-файл компилируется, но это всего одна 1 страница и она пустая. Я воссоздал проблему ниже, и это похоже на проблему измерения данных, но мне не ясно, как ее следует решить. Графики можно сохранить вручную в PDF из средства просмотра графиков, но, похоже, они упали в l oop. Я ожидаю получить PDF длиной 3 страницы с одним графиком на страницу.

library(ggplot2)
library(naniar)
library(visdat)
library(gridExtra)

p = list()

head(iris)

p[[1]] = gg_miss_var(iris) 
p[[2]] = vis_miss(iris)
p[[3]] = vis_dat(iris)

pdf("plots_test2.pdf", onefile = TRUE)
for (i in seq(length(p))) {
  do.call("grid.arrange", p[[i]])  
}
dev.off()

Ошибка, которая появляется:

Error in `$<-.data.frame`(`*tmp*`, "wrapvp", value = list(x = 0.5, y = 0.5,  : 
  replacement has 17 rows, data has 5

1 Ответ

1 голос
/ 10 марта 2020

Заменить do.call и grid.arrange на print()

Каждый график сохраняется на одной странице в PDF

pdf("plots_test2.pdf", onefile = TRUE)
for (i in seq(length(p))) {
   print(p[[i]])  
}
dev.off()
...