Пакет Officer r для создания слайдов с параллельным содержимым - содержание только в одном разделе - PullRequest
1 голос
/ 06 марта 2020

Несмотря на все мои усилия, я не могу загружать контент рядом со слайдами Powerpoint, сгенерированными с использованием пакета R officer. То, что я хотел бы, это контент (исходные изображения или графики, и т. Д. c. Справа и текст слева). Вот мой рабочий процесс:

plot.gg <- ggplot(iris, aes(Sepal.Length, Petal.Width)) + 
   geom_line()

library(officer)
read_pptx()  %>%
  add_slide(layout = "Two Content", master = "Office Theme") %>%
  ph_with("text",  location = ph_location_type(type = "body", index = 4)) %>%
  ph_with(plot.gg, location = ph_location_type(type = "body", index = 3)) %>%
  print(target = "test.pptx") 

Результатом вышеприведенного кода является то, что обе части контента появляются на правом фланге. Я могу получить текст с левой стороны в виде заголовка w / ph_with_text(type = "title", index=1, str = "title"), но, несмотря на все мои старания, на левой стороне слайда не отображаются подписи или содержание.

Ответы [ 2 ]

2 голосов
/ 06 марта 2020

Существует два решения:

library(officer)
library(magrittr)
library(ggplot2)
plot.gg <- ggplot(iris, aes(Sepal.Length, Petal.Width)) + 
  geom_line()

# solution 1 : you don't have layout named "Two Content" ---
read_pptx()  %>%
  add_slide(layout = "Two Content", master = "Office Theme") %>%
  ph_with("text",  location = ph_location_type(type = "body", position_right = FALSE)) %>%
  ph_with(plot.gg, location = ph_location_type(type = "body")) %>%
  print(target = "test.pptx") 

# solution 1 : you can rely on a layout named "Two Content" ---
read_pptx()  %>%
  add_slide(layout = "Two Content", master = "Office Theme") %>%
  ph_with("text",  location = ph_location_left()) %>%
  ph_with(plot.gg, location = ph_location_right()) %>%
  print(target = "test.pptx") 

Параметр index не является частью функции и игнорируется. Я думаю, что вы хотите использовать id, но его значения должны быть 1 и 2 - документация этого параметра "индекс заполнителя. Если заполнитель два тела, могут быть два разных индекса: 1 и 2 для первого и второго тела заполнители, определенные в макете. Если используется этот аргумент, position_right и position_top будут игнорироваться. "

2 голосов
/ 06 марта 2020

Вы можете явно указать, что ваш первый вызов ph_with не отображается справа.

read_pptx()  %>%
  add_slide(layout = "Two Content", master = "Office Theme") %>%
  ph_with("text",  location = ph_location_type(type = "body", index = 4, position_right = F)) %>%
  ph_with(plot.gg, location = ph_location_type(type = "body", index = 3)) %>%
  print(target = "test.pptx") 
...