目前尚不清楚您是否想要在单个 jpeg 文件中包含多个 1024x768 图像 - 这没有意义 - 是否需要包含 6 个图的单个 jpeg 图像。
正如我所说,JPEG 不是多页格式,不像 PDF。因此,您可以让 R 导出到多个 JPEG 文件,但不能在一个 JPEG 中包含所有单独的数字。
R 的设备允许在文件名中使用通配符,因此如果要将六个图导出到文件foo001.jpeg
, foo002.jpeg
,foo00x.jpeg
则可以使用以下命令
jpeg(filename = "foo%03d.jpeg", ....)
.... # plotting commands here
dev.off()
如果您在没有通配符/占位符的情况下执行多个绘图会发生什么情况是say中的文档?jpeg
:
If you plot more than one page on one of these devices and do not
include something like ‘%d’ for the sequence number in ‘file’, the
file will contain the last page plotted.
处理多个页面的设备,因为基础文件格式允许它可以将多个绘图放入单个文件中,因为这是有意义的,例如pdf()
和postscript()
. 这些设备具有onefile
可用于指示是否需要单个文件中的多个绘图的参数。
但是,这par(mfcol=c(3,2))
让我觉得您想要在同一设备区域中设置一组 3x2 的图。这是允许的,但您需要在打开设备par()
后jpeg()
调用,而不是之前。如图所示,您的代码所做的是将活动设备拆分为 3x2 绘图区域,然后打开一个新设备,该设备采用默认参数,而不是您在调用之前在活动设备上设置的参数jpeg()
。如下图所示:
> plot(1:10)
> dev.cur()
X11cairo
2
> op <- par(mfrow = c(3,2))
> jpeg("~/foo.jpg")
> par("mfrow")
[1] 1 1
> dev.off()
X11cairo
2
> par("mfrow")
[1] 3 2
因此,您可能想要类似的东西:
jpeg(filename=names(a1),".jpg",sep=""), quality=100,
width=1024, height=768)
op <- par(mfcol=c(3,2))
#plot 1
plot(a1,b1)
#plot 2
plot(a1,b2)
#plot 3
plot(a1,b3)
#plot 4
plot(a2, c1)
#plot 5
plot(a2, c2)
#plot 6
plot(a2, c3)
par(op)
dev.off()
?