以下是我迭代进行并将其存储在不同文件中的情节代码。
lab=unique(train_train$PdDistrict)
lab=as.character(lab)
par(mfrow=c(1,2),mar=c(9,4,1,0))
for(i in 1:length(lab))
{
jpeg(file=mypath,quality=100,width=1024,height=768)
mypath=file.path("C:","Users","sujit_000","Desktop",paste("PDdistrict",i,".jpeg",sep=""))
a=plot(table(train_train[train_train$PdDistrict==lab[i],1]),las=2,main=lab[i])
dev.off()
}
我得到的JPEG文件是每个文件1个图像,如图所示,但我希望它为每个文件保存两个图像。
答案 0 :(得分:0)
您是否希望每个文件有两个页面,每个页面都有一个图表(正如评论建议并且正确地说不适用于jpeg),或者单个页面/文件中有两个图表?
鉴于您在mfrow
中使用的par
参数,我假设你想要后者。有几点要做到这一点:
par
后拨打jpeg
,否则每次拨打jpeg
都会重置设备选项。
我想你实际上想在创建设备之前定义mypath
,否则第一个文件将丢失它,其余的将被移动一个。
您需要两次调用绘图,一个针对您想要的每个绘图。大概你也想要改变for循环序列以相互跳过(假设你想要连续两个连续绘制)。
尝试这样的事情:
lab=unique(train_train$PdDistrict)
lab=as.character(lab)
## changed loop to every other
for(i in seq(1, length(lab), by=2))
{
## moved mypath before jpeg(), should mypath inclue both i and i+1 in name?
mypath=file.path("C:","Users","sujit_000","Desktop",paste("PDdistrict",i,".jpeg",sep=""))
jpeg(file=mypath,quality=100,width=1024,height=768)
## moved par() from outside of loop
par(mfrow=c(1,2),mar=c(9,4,1,0))
## removed unnecessary assignment of plot()
plot(table(train_train[train_train$PdDistrict==lab[i],1]),las=2,main=lab[i])
## added second plot for i+1
plot(table(train_train[train_train$PdDistrict==lab[i+1],1]),las=2,main=lab[i+1])
dev.off()
}
如果你有一个奇数的情节,这会在最后一次i+1
电话中断,但如果有必要的话,这是一个简单的解决方案。