gpt4 book ai didi

r - pdf格式的多图图中的边距和图尺寸有问题

转载 作者:行者123 更新时间:2023-12-02 08:34:48 25 4
gpt4 key购买 nike

我正在尝试绘制大量图并将它们转储为 pdf。有些情节很自然地放在一起,所以我希望它们在 pdf 的同一页上。但是,要么尺寸变形,要么标题和 x 轴标签不显示。有谁知道如何解决这一问题?

这是一个例子:

set.seed(1)
x <- runif(100)

pdf(file="My pdf.pdf", paper="letter")
par(mfrow=c(2,1)) # squished
hist(x, freq=FALSE)
lines(density(x))
qqnorm(x)
dev.off()

enter image description here

pdf(file="My pdf.pdf", paper="letter")
par(mfrow=c(2,1), pin=c(3,3)) # no titles, etc.
hist(x, freq=FALSE)
lines(density(x))
qqnorm(x)
dev.off()

enter image description here

pdf(file="My pdf.pdf", paper="letter")
par(mfrow=c(2,1), pin=c(3,3), mar=c(4,2,2,1)) # squished again
hist(x, freq=FALSE)
lines(density(x))
qqnorm(x)
dev.off()

pdf(file="My pdf.pdf", paper="letter")
par(mfrow=c(2,1), mar=c(4,2,2,1), pin=c(3,3)) # now titles but overlapping
hist(x, freq=FALSE)
lines(density(x))
qqnorm(x)
dev.off()

enter image description here

我想要的不仅仅是执行此操作的代码,而是了解其工作原理。例如,为什么在最后两个版本中更改参数的顺序会产生如此大的差异。请注意,我将在一页上放置不同数量的图(有时是 2、4 或 8),尽管我在这里只演示最简单的情况。一些可以很好地自动缩放绘图的代码可能会很好,如果它存在的话。

最佳答案

我的一般建议是 (1) 仅使用一种测量单位,即英寸或线,以及 (2) 进行一些计算以确定您的设备尺寸需要多大才能适合您正在绘制的内容。

您正在混合使用线和英寸的 marpin。我当然不知道 1 英寸加 1 条线有多高(尽管我确信我们可以一起破解一些东西来计算它)。

想象一下,您要让 R 绘制两个重叠的图,每个图高 3 英寸 (pin = c(3,3))。我认为您忘记的部分是 pdf 的默认设备尺寸只有 7 英寸高。

因此,如果我们使用英寸设置图形边距,然后将设备尺寸调整为合适的高度:

pdf(file="My pdf.pdf", paper="letter",width = 7,height = 10)
par(mfrow=c(2,1), mai=c(1,0.5,0.5,0.25), pin=c(3,3))
hist(x, freq=FALSE)
lines(density(x))
qqnorm(x)
dev.off()

应该可以。 (我总是多加一点空间。)

关于r - pdf格式的多图图中的边距和图尺寸有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22923087/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com