R: функция для экспорта текущего активного графика R в Powerpoint / Word / LibreOffice
В настоящее время я всегда экспортирую свои R-графики в Powerpoint в векторном формате, используя отличныеReporteRs
пакет, как в
library(ReporteRs)
myplot = function() print(qplot(Sepal.Length, Petal.Length, data = iris, color = Species, size = Petal.Width, alpha = I(0.7)))
doc = pptx()
doc = addSlide(doc, slide.layout = "Blank")
doc = addPlot( doc, myplot, vector.graphic = TRUE, fontname="Arial",
offx = 0.1*dim(doc)$slide.dim["width"], offy = 0.05*dim(doc)$slide.dim["height"],
width = 0.8*dim(doc)$slide.dim["width"], height = 0.9*dim(doc)$slide.dim["height"])
writeDoc( doc, "plot.pptx")
Что я нахожу неудобным в этом рабочем процессе, так это то, что теперь я должен обернуть свои команды построения в функцию (с помощьюprint()
заlattice
или жеggplot2
участки или простоreturn(plot())
для базовых графиков R), и что мне не нравится вручную указывать смещения и размер (я обычно предпочитаю просто получить почти заполненный страницей центрированный график на моем слайде). Мне было просто интересно, если бы вместо этого не было возможности сделать свой сюжет первым (сюжет R,lattice
сюжет илиggplot2
сюжет), а затем определить функциюexport2PPT
который захватывает выходные данные вашего текущего графического устройства как функцию и передает егоReporteRs
а такжеaddPlot
экспортировать свой график как Powerpoint (по центру и соответственно масштабировать), по аналогии с функциейdev.copy2pdf
что работает так же, как экспорт в PDF?
И когда у нас есть такая функция, возможно, дажеизменитьgrDevices
исходный код функцийwindows () и savePlot () иметь дополнительную команду Файл ... Сохранить как Powerpoint, если кто-то использовалwindows()
устройство? Или это что-то для людей из R Core?
Я думаю, что особенно для использования в классе это было бы очень удобно, учитывая доминирование MS Office / LibreOffice. (поскольку Powerpoint гораздо проще редактировать, чем PDF, что позволяет легко вносить небольшие изменения в окончательную компоновку R-графиков, а векторный вывод, по крайней мере, так же хорош, как PDF, плюс прозрачность также полностью поддерживается - для PDF я считаю, что импорт в Inkscape часто немного глючит, если не использовать Adobe Illustrator)
Кто-нибудь, кто бы знал, как это сделать?
РЕДАКТИРОВАТЬ: Тем временем я нашел решение и обернул функции экспорта для экспорта текущего активного графика R в Powerpoint в пакете на CRAN, см.https://cran.r-project.org/web/packages/export/index.html а такжеhttps://github.com/tomwenseleers/export для демонстрационного использования. Пакет теперь использует пакет Officer в качестве бэкэнда, так как ReporteRs устарела ...