我有一个多图,我想在A4 pdf页面上打印,以便图表填满整个页面。当我使用下面的代码时,我在图表上方和下方有很多空白区域。如何将此空白区域缩小到约1厘米并增加图表高度?谢谢你的帮助。
group <- "Title"
layout(matrix(c(1:12), 6, 2) )
par(mar = c(0, 4.1, 1.5, 2.1),oma = c(2, 0, 2, 0))
plot(1:10)
plot(1:10)
plot(1:10)
plot(1:10)
plot(1:10)
plot(1:10)
plot(1:10)
plot(1:10)
plot(1:10)
plot(1:10)
plot(1:10)
plot(1:10)
mtext(group, outer = TRUE, cex = 1.5)
mtext("text", outer = TRUE,side =1)
dev.print(pdf, file="charts12.pdf" ,onefile=T,paper='A4')
答案 0 :(得分:4)
从dev.print
更改为简单pdf
,您可以指定设备的width
和height
。使用的单位是英寸,所以A4是8.27“X 11.69”。我在下面添加了一个例子。在这个例子中,我不得不调整图表周围的上边距。
data("mtcars")
pdf("test.pdf", width = 8.27, height = 11.69)
group <- "Title"
layout(matrix(c(1:12), 6, 2) )
par(mar = c(0, 4.1,2.5, 2.1),oma = c(2, 0, 2, 0))
plot(mtcars$mpg ~ mtcars$hp)
plot(mtcars$mpg ~ mtcars$hp)
plot(mtcars$mpg ~ mtcars$hp)
plot(mtcars$mpg ~ mtcars$hp)
plot(mtcars$mpg ~ mtcars$hp)
plot(mtcars$mpg ~ mtcars$hp)
plot(mtcars$mpg ~ mtcars$hp)
plot(mtcars$mpg ~ mtcars$hp)
plot(mtcars$mpg ~ mtcars$hp)
plot(mtcars$mpg ~ mtcars$hp)
plot(mtcars$mpg ~ mtcars$hp)
plot(mtcars$mpg ~ mtcars$hp)
mtext(group, outer = TRUE, cex = 1.5)
mtext("text", outer = TRUE,side =1)
dev.off()
答案 1 :(得分:2)
dev.print
“将当前设备的图形内容复制到新设备”(来自?dev.pront
),这意味着输出图形的比例取决于源设备的缩放方式。调整绘图窗口的大小会影响您获得的空白量。
如果您另外指定width
和height
,则可以将绘图拟合到A4,使结果与绘图窗口无关。
dev.print(pdf, file="charts12.pdf" ,onefile=T,paper='A4', width = 21/2.54, height = 29.7/2.54)
我将width
和height
除以2.54,将厘米转换为英寸。
在@ amwill04的答案中使用pdf()
和dev.off()
也有效,但缺点是在将图写入文件之前看图。虽然这与生产代码无关,但它可以使编写生成图表的代码更容易,因为只需source
代码就可以生成图表的预览。