0

Rには次の機能があります

pairwise.yearly.plot <- function(data.source, data.target, suffix=".PR", years=2003:2007) {
  # plot pairwise year data for time series representation of data                                                                                                                                                                 
  first <- years[1]
  last <- years[length(years)]
  nc <- last - first #2007-2003                                                                                                                                                                                                    
  par(mfrow=c(nc, nc))
  for(y1 in years) {
    for(y2 in years) {
      if(y1 < y2) {
        year.source <- num.to.colname(y1);
        if(suffix == ".PE") {
          year.target <- paste(num.to.colname(y1), y2, sep=".");
        } else {
          year.target <- paste(num.to.colname(y2), suffix, sep="");
        }
        plot(data.source[[year.source]], data.target[[year.target]], xlab=y1, ylab=paste(y2, suffix,sep=""))
      }
      else if(y1 > y2) {
        frame()
      }
    }
  }
}

これを呼び出すと:

png("output.png")
pairwise.yearly.plot(foo, bar)
dev.off()

空のpngファイルを取得します。グラフィックデバイスをpdfに設定すると、これは起こりません。これを修正する理由と方法を誰か教えてもらえますか?

4

2 に答える 2

2

問題は、par(mfrow=c(nc, nc)) で準備したよりも多くのプロット コマンドを呼び出していることです。

nc が 4 の場合、16 個のセルを描画する準備をしていますが、ループは 25 回の操作を占めています。これらの余分な操作の最後が frame() である場合、空白の画像になってしまいます。

于 2013-04-03T19:25:58.803 に答える