如何在R Markdown中添加三张并排图片并设置单独标题?
解决方案
处理单独标题与图片间距的完整代码
library(png) library(grid) library(gridExtra) # 读取图片并转为rasterGrob img1 <- rasterGrob(as.raster(readPNG("~/Desktop/GIS/project/jpg/yek.png")), interpolate = FALSE) img2 <- rasterGrob(as.raster(readPNG("~/Desktop/GIS/project/jpg/do.png")), interpolate = FALSE) # 若需三张图,添加第三张 img3 <- rasterGrob(as.raster(readPNG("~/Desktop/GIS/project/jpg/third.png")), interpolate = FALSE) # 为每张图片创建带标题的组合grob plot1 <- arrangeGrob(img1, top = textGrob("图片1标题", gp = gpar(fontsize = 12, fontface = "bold"))) plot2 <- arrangeGrob(img2, top = textGrob("图片2标题", gp = gpar(fontsize = 12, fontface = "bold"))) plot3 <- arrangeGrob(img3, top = textGrob("图片3标题", gp = gpar(fontsize = 12, fontface = "bold"))) # 并排展示,设置列间距与边距 grid.arrange(plot1, plot2, plot3, ncol = 3, gap = unit(1, "cm"), # 控制列之间的空白间距 bottom = unit(0.5, "cm"), # 可选:底部边距 left = unit(0.5, "cm")) # 可选:左侧边距
关键说明
- 单独标题:用
arrangeGrob将图片grob和textGrob生成的标题绑定,top参数指定标题位置,gpar可调整标题的字体大小、样式。 - 图片间距:
grid.arrange的gap参数控制列(或行)之间的空白,单位支持cm、in等,可根据需求调整数值。 - 若仅需两张图,删除
img3和plot3相关代码,将ncol设为2即可。
内容的提问来源于stack exchange,提问作者Faranak omidi
相关产品推荐
相关产品推荐

