[英]How to save several plots from an own function into a list in R?
我创建了一个包含两种类型图的函数,它将为您提供一张图像。 但是,此图像的标题将根据一个列表而变化,因此,您将有多个图但标题不同。 (原始函数将更改绘图使用的数字,但本质上,这是我需要的)。
这是我创建的示例。
list_genes <- c("GEN1", "GEN2", "GEN3")
myfunction <- function(x,y){
for(gene in list_genes){
# This to draw both plots
par(mfrow=c(2,1))
plot(x,y, main=paste0("Plot of ", gene))
hist(x, main=paste0("Plot of ", gene))
}
}
myfunction(x=c(1,5,6,2,4),y=c(6,10,53,1,5))
但是,由于我需要使用我生成的所有图创建演示文稿,我发现这篇文章提供了一个解决方案,可以为 for 循环内的多个图创建幻灯片。 这是我想要的,但为此,我需要将我的图保存到列表/变量中。
object <- myfunction(x=c(1,5,6,2,4),y=c(6,10,53,1,5))
> object
NULL
我发现了这篇文章(它为您提供了一个有趣的解决方案)但是,这些图仍然无法保存到对象中。
calling_myfunc <- function(){
myfunction(x=c(1,5,6,2,4),y=c(6,10,53,1,5))
}
calling_myfunc()
object <- calling_myfunc()
> object
NULL
我的最终目标是使用我从函数生成的所有图创建一个演示文稿(自动)。 正如我在这篇文章中看到的。 但我需要将这些图保存到一个变量中。
有人可以帮我解决这个问题吗?
首先十分感谢
尽管我找不到将绘图保存到对象中的方法,但由于这篇文章和export
包,我找到了一种使用这些图像创建演示文稿的方法。
library(export)
list_genes <- c("GEN1", "GEN2", "GEN3")
myfunction <- function(x,y){
for(gene in list_genes){
# This to draw both plots
par(mfrow=c(2,1))
plot(x,y, main=paste0("Plot of ", gene))
hist(x, main=paste0("Plot of ", gene))
graph2ppt(file="plots.pptx", width=6, height=5,append=TRUE) } }
myfunction(x=c(1,5,6,2,4),y=c(6,10,53,1,5))
当然,绘图的宽度和高度可以更改或将它们作为参数放在函数中。
由于我当前的 R 版本(4.1.2)在 CRAN 中没有该包,我从 GitHub 下载了它: devtools::install_github("tomwenseleers/export")
另外,我找到了另一个可以用于相同目的的包(虽然它在开始时增加了一张幻灯片,但我不知道为什么)
library(eoffice)
list_genes <- c("GEN1", "GEN2", "GEN3")
myfunction <- function(x,y){
for(gene in list_genes){
# This to draw both plots
par(mfrow=c(2,1))
plot(x,y, main=paste0("Plot of ", gene))
hist(x, main=paste0("Plot of ", gene))
topptx(file="plots.pptx", width=6, height=5,append=TRUE)
}
}
myfunction(x=c(1,5,6,2,4),y=c(6,10,53,1,5))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.