Параллельное построение графиков в ReporteRs с использованием addImage

Я использую пакет ReporteRs для автоматического создания документа docx. Для этого мне нужно поставить два внешних изображения рядом. А не вариант ли вручную их комбинировать перед использованием в R, так как это будет большое количество комбинаций.

library("ReporteRs")
doc <- docx()
doc <- addImage(doc,"image1.png",par.properties = parLeft(), height=1, width=1)
doc <- addImage(doc,"image2.png",par.properties = parLeft(), height=1, width=1)
writeDoc(doc, file = "example.docx")

Как я могу сделать так, чтобы участки были рядом, а не под/над другим?


person Acarbalacar    schedule 03.08.2016    source источник


Ответы (1)


Вот 2 разных метода:

# png(filename = "image1.png")
# barplot(1:10)
# dev.off()
# 
# png(filename = "image2.png")
# barplot(1:10)
# dev.off()

library(ReporteRs)
library(magrittr)

способ 1: с разрезом

docx() %>% 
  addSection(ncol = 2, space_between = 0.1) %>% 
  addImage( "image1.png",par.properties = parLeft(), height=1, width=1) %>% 
  addColumnBreak() %>% 
  addImage( "image2.png",par.properties = parLeft(), height=1, width=1) %>% 
  addSection( ncol = 1 ) %>% 
  writeDoc( file = "example1.docx")

Способ 2: со столом

dat <- matrix("", nrow = 1, ncol = 2) # dummy empty table
# Flextable - one line, 2 columns
ft <- FlexTable(dat, header.columns = F, add.rownames = F) 
ft[1,1] <- pot_img("image1.png", height=1, width=1) # add image1 to cell 1
ft[1,2] <- pot_img("image2.png", height=1, width=1) # add image2 to cell 2

docx() %>% 
  addFlexTable( ft ) %>% 
  writeDoc(file = "example2.docx")
person David Gohel    schedule 04.08.2016
comment
У меня была мысль, что это можно сделать с помощью FlexTable. Я не думал, что addSection является опцией. Спасибо - person Acarbalacar; 05.08.2016
comment
Я попробовал это с некоторыми ggplots вместо изображений, метод раздела добавляет полный разрыв страницы, а метод таблицы возвращает ошибку, когда я помещаю свой график в матрицу. Есть ли обходной путь? - person Dan Chaltiel; 07.07.2017
comment
@DanChaltiel pot_img ожидает путь к изображению, а не объект ggplot. - person David Gohel; 10.07.2017