Side-by-side plotting in ReporteRs using addImage

血红的双手。 提交于 2019-12-11 06:23:58

问题


I am using the ReporteRs package to automatically create a docx document. To this end, I need to put two external images side by side. Is it not an option manually combining them before using them in R , since that would be a large number of combinations.

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

How can I do this so the plots are side by side, and not under/over the other?


回答1:


Here are 2 different methods:

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

library(ReporteRs)
library(magrittr)

method 1: with a section

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

method 2 : with a table

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


来源:https://stackoverflow.com/questions/38741930/side-by-side-plotting-in-reporters-using-addimage

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!