保存多个箱线图

发布于 2024-10-22 03:29:44 字数 329 浏览 5 评论 0原文

我已经创建了一个循环来创建多个箱线图。问题是,我想保存所有箱线图而不互相覆盖。有什么建议吗?

这是我当前的代码:

boxplot <- list()
for (x in 1:nrow(checkresults)){
    boxplots <- boxplot(PIM[,x], MYC [,x], OBX[,x], WDR[,x], EV[,x], 
                        main=colnames(PIM)[x], 
                        xlab="PIM, MYC, OBX, WDR, EV")
}

I've made a loop to create multiple boxplots. The thing is, I want to save all the boxplots without overwriting each other. Any suggestions?

This is my current code:

boxplot <- list()
for (x in 1:nrow(checkresults)){
    boxplots <- boxplot(PIM[,x], MYC [,x], OBX[,x], WDR[,x], EV[,x], 
                        main=colnames(PIM)[x], 
                        xlab="PIM, MYC, OBX, WDR, EV")
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

心不设防 2024-10-29 03:29:44

您想将它们保存在某些文件中,还是保存它们以便能够在不同的窗口中查看它们?

如果是第一种情况,您可以在 for 循环中使用 pngpdf 或任何函数调用:

R> for (i in 1:5) { 
R>    png(file=paste("plot",i,".png",sep=""))
R>    plot(rnorm(10))
R>    dev.off() 
R> }

如果您想显示它们在单独的窗口中,只需使用 dev.new :

R> for (i in 1:5) { 
R>    dev.new()
R>    plot(rnorm(10)); 
R> }

Do you want to save them in some files, or save them to be able to look at them in different windows ?

If it is the first case, you can use a png, pdf or whatever function call inside your for loop :

R> for (i in 1:5) { 
R>    png(file=paste("plot",i,".png",sep=""))
R>    plot(rnorm(10))
R>    dev.off() 
R> }

If you want to display them in separate windows, just use dev.new :

R> for (i in 1:5) { 
R>    dev.new()
R>    plot(rnorm(10)); 
R> }
池木 2024-10-29 03:29:44

只是为了添加@juba的答案,如果您想将绘图保存到多页pdf文件中,那么您不必使用@juba建议的paste命令。这

pdf("myboxplots.pdf")
for (x in seq_along(boxplots)){
    boxplot(PIM[,x], MYC [,x], OBX[,x], WDR[,x],EV[,x],
                     main = colnames(PIM)[x], 
                     xlab = "PIM, MYC, OBX, WDR, EV")
}
dev.off() 

将创建一个多页 pdf 文档,其中每个页面都是一个箱线图。如果您想将箱线图存储在单独的 pdf 文档中,请使用 file=paste 命令。

Just to add to @juba's answer, if you want to save the plots to a multi-page pdf file, then you don't have to use the paste command that @juba suggested. This

pdf("myboxplots.pdf")
for (x in seq_along(boxplots)){
    boxplot(PIM[,x], MYC [,x], OBX[,x], WDR[,x],EV[,x],
                     main = colnames(PIM)[x], 
                     xlab = "PIM, MYC, OBX, WDR, EV")
}
dev.off() 

creates a single multi-page pdf document, where each page is a boxplot. If you want to store the boxplots in separate pdf documents, then use the file=paste command.

花开柳相依 2024-10-29 03:29:44

首先,创建一个正确长度的列表 - 它只会让事情变得更容易,并且是在通过循环填充对象之前分配存储的好习惯:

boxplots <- vector(mode = "list", length = nrow(checkresults))

然后我们可以循环您想要的数据,分配给箱线图的每个组件 使用 [[x]] 表示法列出:

for (x in seq_along(boxplots)){
    boxplots[[x]] <- boxplot(PIM[,x], MYC [,x], OBX[,x], WDR[,x],EV[,x],
                             main = colnames(PIM)[x], 
                             xlab = "PIM, MYC, OBX, WDR, EV")
}

之前,您的代码在后续迭代期间会覆盖之前的箱线图信息。

First, create a list of the right length - it just makes things easier and is good practice to allocate storage before filling objects in via a loop:

boxplots <- vector(mode = "list", length = nrow(checkresults))

Then we can loop over the data you want, assigning to each component of the boxplots list as we go, using the [[x]] notation:

for (x in seq_along(boxplots)){
    boxplots[[x]] <- boxplot(PIM[,x], MYC [,x], OBX[,x], WDR[,x],EV[,x],
                             main = colnames(PIM)[x], 
                             xlab = "PIM, MYC, OBX, WDR, EV")
}

Before, your code was overwriting the previous boxplot info during subsequent iterations.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文