gpt4 book ai didi

r - 自动保存多页格子图

转载 作者:行者123 更新时间:2023-12-01 13:52:38 25 4
gpt4 key购买 nike

我想知道是否有人可以协助编写下面的代码。我有一个巨大的数据集(> 1000 个主题),我试图单独对其进行可视化。

我有幸从 R-bloggers 找到了 Tony Cookson 编写的代码我已经修改以供使用。代码工作正常,但生成的 pdf 已损坏 - 基本上它们拒绝打开。我觉得某处有错误,但我还没有弄清楚在哪里。任何帮助将不胜感激。

library(lattice)

names = LETTERS[1:3]

for(i in 1:3){

mypath <- file.path("myFilepath", "folder containing 'Plots' subfolder ",
"Plots",paste("myplot_", names[i], ".pdf", sep = ""))

pdf(file=mypath)
mytitle = paste("Theoph Plots", names[i])
xyplot(conc ~ Time | Subject, group = Subject, data = Theoph, type = "l",
layout = c(2, 2), main = mytitle)
dev.off()
}

为了使代码可重现,您需要将 myFilepath、包含“Plots”子文件夹和“Plots”的文件夹替换为您计算机上可以找到的实际文件夹的名称。有关详细信息,请参阅 R-bloggers 上的原文。我很乐意澄清任何看似模棱两可的事情。

谢谢

编辑:

library(lattice)

names = LETTERS[1:3]

for(i in 1:3){

mypath <- file.path("myFilepath", "folder containing 'Plots' subfolder ",
"Plots",paste("myplot_", names[i], ".pdf", sep = ""))

pdf(file=mypath)
mytitle = paste("Theoph Plots", names[i])
print(xyplot(conc ~ Time | Subject, group = Subject, data = Theoph, type = "l",
layout = c(2, 2), main = mytitle))
dev.off()
}

我设法使用打印功能找到了一个临时解决方案(上图)。但是,我目前在同一个 pdf 中获取所有 12 个主题。我真正想要的是 4 个主题(2 x 2 矩阵)在单独的 pdf 上,所以总共制作 3 个 pdf。有人知道怎么做吗?

最佳答案

如果您希望在每个页面上绘制 Subject 的子集,则必须为每次迭代对数据进行子集化,然后绘制。

要在每个页面上获得 4 个主题,您可以使用以下索引构建器作为子集的基础:

(i - 1) * 4 + 1:4

Theoph 数据集的技巧在于主题“数字”实际上是有序因子。因此,您必须将以上内容转换为一个因子,或者作为一个快捷方式,转换为一个字符向量。

for(i in 1:3){
## Changed mypath to make it reproducible
mypath <- file.path(tempdir(), paste("myplot_", names[i], ".pdf", sep = ""))
pdf(file=mypath)

mytitle = paste("Theoph Plots", names[i])

myIndex <- as.character((i - 1) * 4 + 1:4) # index builder from above

print(xyplot(conc ~ Time | Subject,
data = Theoph[Theoph$Subject %in% myIndex, ],
type = "l", layout = c(2, 2), main = mytitle))
dev.off()
}

主题的顺序有点乱,因为如前所述,该变量是一个有序因子。为了保持顺序,您可以在该因素的水平上进行子集化:

myIndex <- levels(Theoph$Subject)[(i - 1) * 4 + 1:4]

构建索引的最佳方式将取决于您的实际数据。

关于r - 自动保存多页格子图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34610612/

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