2

私はRに非常に慣れていないので、Rでプロット関数を使用しようとしていました。Linux環境でRを使用する

「サンプル」という名前のデータ フレームからデータをプロットしようとしています

jpeg('rplot1.jpg')
plot(sample,cex=0.9,col="blue")
Error in plot.new() : figure margins too large
dev.off()

私が理解していることから、プロットパネルのサイズを大きくする必要があります。方法がわからない.試してみた

4

2 に答える 2

1

明確にするために、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引数に渡しますjpeghwFactこれは、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 が必要でした。最小サイズがわかったら、実験して適切なサイズを見つける必要があります。

于 2012-11-10T21:31:30.957 に答える
1

関数にリストを与えています(データフレームはリストであるため)plot。代わりに試してください:

plot(sample[[1]], sample[[2]], cex=0.9, col="blue")
于 2012-11-09T23:19:48.597 に答える