gpt4 book ai didi

r - 使用 for 循环保存多个 ggplots

转载 作者:行者123 更新时间:2023-12-02 10:12:56 31 4
gpt4 key购买 nike

我想自动生成许多 ggplots:

通用数据集:

mydata<-data.frame(matrix(rnorm(100),ncol=5))
names(mydata)<-c("Tijd","X1","X2","X3","X4")

指定要包含的变量:

Start=2
Stop=5

保存绘图的列表:

gvec<-vector("list",length=length(Start:Stop))

创建绘图:

for(i in Start:Stop){
graphy<-ggplot(mydata,aes_string(x="Tijd",y=names(mydata)[i]))+geom_point()+mytheme
gvec[[i-Start+1]]<-graphy
}

保存绘图:

for(i in Start:Stop){
tiff(paste0("Test/Residu/Plots/Prei/mydata.",names(mydata)[i],"09.14.tiff"),width=720,height=720)
gvec[[i-Start+1]]
graphics.off()
}

生成绘图列表;我也可以手动保存绘图。但是,使用最后一个循环生成的文件都是空白的。我不明白这是什么原因。

按照罗兰的建议我尝试过print(gvec[[i-Start+1]]) 但我仍然得到空白文件作为输出。

最佳答案

这是一个在循环中创建 ggplot 的完全可重现的示例。

# Plot separate ggplot figures in a loop.
library(ggplot2)

# Make list of variable names to loop over.
var_list = combn(names(iris)[1:3], 2, simplify=FALSE)

# Make plots.
plot_list = list()
for (i in 1:3) {
p = ggplot(iris, aes_string(x=var_list[[i]][1], y=var_list[[i]][2])) +
geom_point(size=3, aes(colour=Species))
plot_list[[i]] = p
}

# Save plots to tiff. Makes a separate file for each plot.
for (i in 1:3) {
file_name = paste("iris_plot_", i, ".tiff", sep="")
tiff(file_name)
print(plot_list[[i]])
dev.off()
}

# Another option: create pdf where each page is a separate plot.
pdf("plots.pdf")
for (i in 1:3) {
print(plot_list[[i]])
}
dev.off()

enter image description here

关于r - 使用 for 循环保存多个 ggplots,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26034177/

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