使用addImage在ReporteRs中并排绘图

时间:2016-08-03 11:11:34

标签: r reporters

我正在使用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")

我怎样才能这样做,所以情节是并排的,而不是在另一个之上/之上?

1 个答案:

答案 0 :(得分:1)

以下是两种不同的方法:

# 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")