2016-04-16 10 views
0

ここでは、繰り返し実行して別のファイルに保存するプロットのコードを示します。Rの同じJPEGファイルに複数のFigureをプロットする方法はありますか?

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つの画像が表示されていますが、ファイルごとに2つの画像を保存します。

enter image description here

+1

'layout'関数を使います。私はJPEG形式には複数ページオプションがあるとは思わない。そのためには、PDFまたはPSが必要です。 –

+0

'pdf'が問題ない場合は、スクリプトの前に' pdf( "myplot.pdf") 'を、最後に' dev.off() 'を置くことができます。 @ 42は正しいですが、 'jpeg()'では動作しません。 –

答えて

0

あなたはプロット(コメントは示唆して正しくJPEGでは動作しません言うように)、または単一のページ/ファイル内の2つのプロットでそれぞれ、ファイルごとに2つのページをしたいですか?

parで使用したmfrow引数を使用すると、私は後者にしたいと思うでしょう。それを達成するためのポイントのカップル:jpeg

  • コールpar、そうでない場合はjpegへの各呼び出しはデバイスのオプションをリセットしています。

  • 私はあなたが実際にそれ以外の場合は、最初のファイルのために行方不明になり、残りは1つシフトされ、は、デバイスを作成する前にmypathを定義したいと想像します。

  • 2つのプロットが必要です。プロットごとに1つずつ呼び出す必要があります。おそらく、forループシーケンスを(あなたが一緒にプロットされた2つの連続したものを仮定していると仮定して)お互いにスキップするように変更したいでしょう。

このような何か試してみてください:

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呼び出しで中断しますが、必要に応じて、それは簡単な修正です。

関連する問題