web-dev-qa-db-ja.com

「plot.new()のエラー:図の余白が大きすぎます」

Rでは、次のような実行エラーが発生しました。

> png("p3_sa_para.png", 4, 2)
> par(mfrow=c(1,2))
> plot(c(1:10), ylab="Beta",xlab="Iteration")
Error in plot.new() : figure margins too large
> plot(c(1:10), ylab="Gamma",xlab="Iteration")
Error in plot.new() : figure margins too large
> dev.off()
X11cairo 
       2 

画像のサイズを4 x 2に小さくしましたが、「図の余白が大きすぎる」というメッセージが表示されるのはなぜですか。この問題をpngで解決するにはどうすればよいですか?

Pngをpdfに変更すると機能するのは奇妙です。なぜなのかしら?

よろしくお願いします!

16
Tim

png()関数はインチではなくpixelsを使用するので、次のようなものを試してください

_png("p3_sa_para.png", 640, 480)
_

そして、2番目の質問に答えるために、はい、pdf()はインチを使用します。これは、ベクターグラフィックス形式にはピクセルの概念がないためです。 help(png)およびhelp(pdf)関数はあなたの友達です。

24

この問題は、特定のIDEを使用することで簡単に発生します。私はRstudioを使用していて、多くのエラーが発生しました。まったく同じコードがコンソールで正常に機能しました。

7
RMurphy

R-Studioでエラーが発生していましたが、コンソールにプロットが表示されていました。 RStudioを再起動するだけで問題は解決しました!そうは言っても、RStudioのサポートページでは、グラフィックデバイスのリセットdev.off()が役立つ可能性があることを示唆しています。 http://support.rstudio.org/help/kb/troubleshooting/problem-with-plots-or-graphics-device

4
user2781881

これは、プロットを生成して表示する場所があるIDEを使用している場合に特別にプロットする場合の一般的な問題です。これは一般的な問題であり、背後にロジックがあると考えています。 Rは何かをプロットするために、Rは最初にデータを見てから、自由に使える領域を見て、プロットを実行できるようにします。

png()および類似のコマンド:

あなたのケースでは、プロットに4 x 2ピクセルの領域を与えたので、プロットにフィットするサイズで領域を増やすことで解決できます。 (Dirk Eddelbuettelとして 言及

IDEの場合

これはほとんどの場合非常に簡単です。マージンをドラッグしてプロット領域を増やし、コードを再実行します(以前に開いていた場合は、par()を閉じて、新しいコードを作成します)。 enter image description here

3