明確にするために、data.frame
すべての数値列で a をplot
関数に渡すことはpairs
、すべての列の散布図行列を互いにプロットするために呼び出すことと同じです。あなたはおそらくこれを知っています。
私が知る限り、エラーの理由は単純に、デバイス ( jpeg
) が散布図マトリックス全体を適切に格納できるほど大きくないことです。例えば、
mysamp <- matrix(rnorm(10000), nrow = 100)
mydat <- as.data.frame(mysamp)
plot(mydat)
# Error in plot.new() : figure margins too large
プロットを正常に作成するには、より大きな値をwidth
とのheight
引数に渡しますjpeg
。hwFact
これは、jpeg の高さと幅を乗算する数値である必要がある引数を持つ関数です。
myFun <- function(data, hwFact = 1){
jpeg("rplot1.jpg", width = 500 * hwFact, height = 500 * hwFact)
plot(data, cex = .9, col = "blue")
dev.off()
}
次の反復では、上記の関数を使用してhwFact
、jpeg が作成されるまで連続して増加します。jpeg が正常に作成されると、反復番号が出力され、反復が停止します。(これはほとんどプロットの最小サイズであり、おそらく小さすぎて何も読み取れません。)
for(i in 1:20){
res <- tryCatch(myFun(mydat, i), error = function(e) e)
if(!"error" %in% class(res)) {
print(i)
break
}
}
# [1] 3
したがって、(完全に判読できない) プロットを作成するには、幅と高さが 1500 (つまり 500 * 3) の jpeg が必要でした。最小サイズがわかったら、実験して適切なサイズを見つける必要があります。