Не уверен, с какой проблемой вы столкнулись, ответ был слишком длинным, чтобы оставить комментарий, следовательно, ответ.
Я использую magick::image_read()
для чтения фонового изображения. Поскольку я не знаю, что вы пытаетесь построить, я использую mtcars
в качестве примера набора данных, чтобы проверить, работает ли он в al oop - и переменная, которая должна быть построена, и scale_y_continuous
зависят от столбец, который может быть похож на ваш вариант использования.
lapply(c('data.table', 'ggplot2', 'grid', 'png', 'magick'),
library, character.only = T)
img <- image_read('https://i.stack.imgur.com/IwjyT.png')
dat <- as.data.table(mtcars)
plot_list <- lapply(colnames(dat)[1:5], function(z){
plt <- ggplot(dat, aes_string(x = 'wt', y = z)) +
theme(legend.position = 'none') +
annotation_custom(grob = rasterGrob(image = img,
width = unit(1, 'npc'),
height = unit(1, 'npc')),
xmin = -Inf, xmax = Inf, ymin = -Inf, ymax = Inf) +
geom_point() + geom_line() +
scale_x_continuous(limits = dat[, range(wt)]) +
scale_y_continuous(limits = dat[, range(get(z))])
ggsave(filename = sprintf('%s vs Wt.png', z), plot = plt, device = 'png')
return(plt)
})
Я не обнаружил проблем с графиками - это подтверждается сохранением графика локально. Разница в размере изображения была единственной, когда на оси у было больше цифр для отметок (например, при построении cyl
против при построении hp
).
Я также проверил это с theme_void
- он только удалил оси x, y и не изменил сам график.