Я бы предложил использовать grImport или grImport2 . Первый поддерживает PostScript, а второй поддерживает SVG. Обратите внимание, что в целом постобработка изображения SVG будет необходима:
library(magrittr)
infile <- tempfile()
svglite::svglite(infile, width = 10, height = 7)
ggplot2::qplot(mpg, wt, data = mtcars, colour = factor(cyl))
dev.off()
system(paste("cat", infile), intern = TRUE) %>%
paste0(., collapse = "") %>%
charToRaw(.) %>%
rsvg::rsvg_svg(NULL, file = NULL) %>%
rawToChar(.) %>%
grImport2::readPicture(.) %>%
grImport2::grid.picture(.)
В приведенном выше примере используется искусственный cat
для генерации данных SVG, которые считываются из STDIN
. В вашем случае вы можете заменить это звонком на plantuml
.