plot.new()のエラー:図の余白が大きすぎます、散布図


107

私は解決策についてさまざまな質問を検討し、提案されたものを試しましたが、それを機能させる解決策が見つかりませんでした。

私がこのコードを実行したいときはいつでもそれはいつも言う:

plot.new()のエラー:図のマージンが大きすぎます

それを修正する方法がわかりません。これが私のコードです:

par(mfcol=c(5,3))
hist(RtBio, main="Histograma de Bio Pappel")
boxplot(RtBio, main="Diagrama de Caja de Bio Pappel")
stem(RtBio)
plot(RtBio, main="Gráfica de Dispersión")

hist(RtAlsea, main="Histograma de Alsea")
boxplot(Alsea, main="Diagrama de caja de Alsea")
stem(RtAlsea)
plot(RtTelev, main="Gráfica de distribución de Alsea")

hist(RtTelev, main="Histograma de Televisa")
boxplot(telev, main="Diagrama de Caja de Televisa")
stem(Telev)
plot(Telev, main="Gráfica de dispersión de Televisa")

hist(RtWalmex, main="Histograma de Walmex")
boxplot(RtWalmex, main="Diagrama de caja de Walmex")
stem(RtWalmex)
plot(RtWalmex, main="Gráfica de dispersión de Walmex")

hist(RtIca, main="Histograma de Ica")
boxplot(RtIca, main="Gráfica de caja de Ica")
stem(RtIca)
plot(RtIca, main="Gráfica de dispersión de Ica")

私に何ができる?



2
余白が画像に対して大きすぎるようです。これは、プロットウィンドウが小さい場合に発生する可能性があります。いずれにせよ、あなたの説明は問題を診断するには不十分です。プロットウィンドウを使用して、Rセッションの再現可能な例またはスクリーンショットを使用できます。
RomanLuštrik2015

私の場合、それは次のようにプロットされるデータの小さなサブセットでデバッグするのに役立ちましたplot(df[1,1:3], df2[1,1:3])-そして、私が実際にしたいことは次のことでplot(unlist(df[1,1:3]), unlist(df2[1,1:3]))もあることに
気付きました

回答:


161

プロットを作成するたびに、このエラーが発生する可能性があります-" Error in plot.new() : figure margins too large"。このようなエラーを回避するには、最初にpar("mar")出力を確認します。あなたは得ているはずです:

[1] 5.1 4.1 4.1 2.1

その書き込みを変更するには:

par(mar=c(1,1,1,1))

これでエラーが修正されます。または、それに応じて値を変更できます。

これがうまくいくことを願っています。


2
マージンの内側にある値を正確に知るにはどうすればよいですか?そして、なぜ私は[1] 5.1 4.1 4.1 2.1を取得すべきだと言うのに、それをすべて1に変更するように私に言ったのですか?
Herman Toothrot 2016年

2
私はRStudioで同じ問題に遭遇し、入力したときにpar("mar")同じ正確な文字列を取得した[1] 5.1 4.1 4.1 2.1ので入力しましたpar(mar=c(1,1,1,1))が、plot()は何もプロットしなかったため、RStudioとターミナルの両方を閉じる必要がありました。RStudioを再度開いた後、通常に戻りました。
noobninja

2
RStudioのRマークダウンでも同じ問題が発生します。Guest Rのソリューションも@noobninja再起動も、私のためにそれを修正しませんでした。
SC。

このエラーは、RStudio UIレイアウトの問題が原因で発生しており、コードに問題はありません。2番目の答えは私のためにそれを修正しました。
ニコールサリバン

1
@Nicole Sullivan RStudioなしでもこのエラーが発生しました。説明したように私はそれを行い、それは動作します。@djhurioに感謝!
Gwang-Jin Kim、

105

これは、RStudioのプロットパネルが、作成しようとしているプロットのマージンに対して小さすぎる場合に発生する可能性があります。展開してから、もう一度コードを実行してください。

プロットパネルが小さすぎてグラフを表示できない場合、RStudio UIでエラーが発生します。 プロットパネルが小さすぎるRStudio

プロットパネルを展開するだけでバグが修正され、グラフが表示されます。 プロットパネルが展開されたRStudio


5
確かに機能します。プロット領域を拡大するだけで効果があります
Jiapeng Zhang

3
はい、RStudioでパネルのサイズを変更できます。これは、プロットパネルを閉じてスライドさせてUIの右側を最小化すると発生するRStudioのバグです。
ニコールサリバン

これは実際にはほとんどの場合に機能します。マージンが実際に非常に小さいため、このウィンドウを最大化しても、この問題の解決策がない少数のケースがあります
Dimitrios Zacharatos

27

dev.off()RStudioがデフォルトの設定で新しいグラフィックスデバイスを開くように呼び出すと、うまくいきました。HTH。


1
その方法を説明していただけませんか?
Swift Arrow

20

RStudioでこのメッセージが表示された場合は、「プロット」タブで「ほうきの柄」の図「すべてのプロットをクリア」をクリックして、plot()を再試行してください。

さらに、コマンドを実行します

graphics.off()

11
この3行を作成しますgraphics.off() par("mar") par(mar=c(1,1,1,1))
Hiren


1

余談です。この「マージン」エラーは、高解像度の図dpi = 300またはなどres = 300)をR に保存するために発生することがあります。
この場合、必要なのは、幅と高さ指定することです。(ところで、 ggsave()これは必要ありません。)

これにより、マージンエラーが発生します。

# eg. for tiff()
par(mar=c(1,1,1,1))
tiff(filename =  "qq.tiff",
     res = 300,                                                 # the margin error.
     compression = c( "lzw") )
# qq plot for genome wide association study (just an example)
qqman::qq(df$rawp, main = "Q-Q plot of GWAS p-values", cex = .3)
dev.off()

これマージンエラーを修正します:

# eg. for tiff()
par(mar=c(1,1,1,1))
tiff(filename =  "qq.tiff",
     res = 300,                                                 # the margin error.
     width = 5, height = 4, units = 'in',                       # fixed
     compression = c( "lzw") )
# qq plot for genome wide association study (just an example)
qqman::qq(df$rawp, main = "Q-Q plot of GWAS p-values", cex = .3)
dev.off()
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.