Экспорт базовой графики R с помощью rvg в PowerPoint - PullRequest
0 голосов
/ 26 сентября 2019

Я пытаюсь использовать офицерский пакет для создания документа PowerPoint, который содержит базовую графику R, желательно не с фиксированным разрешением, а скорее как редактируемую векторную графику.Вот то, что я пытался, но в итоговом документе PowerPoint по-прежнему отсутствует диаграмма (промежуточное .dml было создано и содержит немного XML).

library (officer)
library (rvg)

# write an R base graphics plot to "plot.dml"
dml_pptx ("plot.dml")
x = (-300:300)/100
plot (x,sin(x),type="l",col="blue")
dev.off ()

# create a PowerPoint document
doc = read_pptx ()
doc = add_slide (doc,layout ="Title and Content",master="Office Theme")
ph_with (doc,external_img (src="plot.dml"),location=ph_location_type(type="body"))
print (doc,"example.pptx")

Когда я вместо этого генерирую графический файл с помощью jpeg ("plot.jpg") и затем включите этот файл в презентацию, он работает, но я бы хотел избежать фиксированного разрешения и иметь диаграмму, редактируемую в PowerPoint.

Альтернативной стратегией может быть пакет export,

library (export)

x = (-300:300)/100
plot (x,sin(x),type="l",col="blue")

graph2ppt (file="example2.pptx",width=6,height=6)

Последний работает в интерактивном режиме, но не работает в скрипте.Чего мне не хватает?

Заранее спасибо за помощь.

HPF

1 Ответ

1 голос
/ 27 сентября 2019

Вам необходимо использовать аргумент code функции dml и предоставить выражение, содержащее инструкции вашего графика:

library(rvg)
library(officer)
library(magrittr)
read_pptx() %>% 
  add_slide(layout = "Title and Content", master = "Office Theme") %>% 
  ph_with(dml(code = {
    x = (-300:300)/100
    plot (x,sin(x),type="l",col="blue")
  }), location = ph_location_type(type = "body")) %>% 
  print(target = "demo_rvg.pptx")
...