在网格中排列多个(32).png文件

时间:2014-08-18 09:38:11

标签: r png grid-layout

过去一周我一直在拔头发试图找出基本的R编码,但似乎无法到达任何地方(自2013年以来没有用过R而不是它的一个很好的借口)。

我想要的只是一个 4x8网格,由32个.png文件组成(我做过的地图),我希望一次只加载一个图像文件({ {3}})。

所以我想我可以在文件夹中加载图像(如果我的信念是bs,请纠正我)

img <- list.files(path='c:/a',patt='compo[0-32].*',full.names=T)

然后我想的可能是par(mfrow=c())layoutgrid.arrangehttp://www.statmethods.net/advgraphs/layout.html),grid.rasterwriting png plots into a pdf file in R) - 我已经阅读并进行了相应的实验,并没有带来任何有价值的东西..

后者我只使用以下结果enter image description here

这让我傻笑。 我并不认为lattice无论如何都要走。

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:5)

不确定您对加载所有图像文件的担忧是什么 - 您还能如何阅读其数据以创建新图像?

ETA:要加载文件,我只使用png::readPNG。收集图像的一种方法是(此处选择12张图像)

filenames<-dir(pattern='compo')
foo<-list()
for(j in 1:12) foo[[j]]<-readPNG(filenames[j]

如果您愿意加载它们并使用基础plot工具,那么layout就是您想要的命令。例如,加载了12张图像

layout(matrix(1:12,nr=4,byr=T))
for (j in 1:12) plot(foo[[j]])

答案 1 :(得分:0)

另一种方法是使用readPNG读取PNG图像,然后使用grid和gridExtra:

library(png)
library(grid)
library(gridExtra)

plot1 <- readPNG('plot1.png')
plot2 <- readPNG('plot2.png')

grid.arrange(rasterGrob(plot1),rasterGrob(plot2),ncol=1)