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]))另请参阅:stackoverflow.com/a/17074060/6018688
fabianegli

Answers:


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?
赫尔曼·托特罗特

2
我在RStudio中遇到了同样的问题,当我输入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 markdown中也遇到同样的问题。Guest R的解决方案或@noobninja重新启动都没有为我修复它。
SC。

您收到此错误是由于RStudio UI布局问题,而不是代码有问题。第二个答案为我解决了。
妮可·沙利文

1
@Nicole Sullivan我也没有RStudio遇到此错误。我做了描述,它的工作原理。谢谢@djhurio!
Gwang-Jin Kim,

105

当您在RStudio中的绘图面板对于要创建的绘图的边距而言太小时,可能会发生这种情况。尝试进行扩展,然后再次运行代码。

当绘图面板太小而无法显示图表时,RStudio UI会导致错误: RStudio的绘图面板太小

只需扩展绘图面板即可修复该错误并显示图表: RStudio的绘图面板已展开


5
它确实有效..只需扩大地块面积即可
张佳鹏

3
是的,可以在RStudio中调整面板的大小。当您通过关闭绘图面板最小化UI的右侧时,这是一个RStudio错误。
妮可·沙利文

这实际上在大多数情况下都有效。在少数情况下,利润确实很小,即使您最大化此窗口,也无法解决此问题
Dimitrios Zacharatos

27

调用dev.off()RStudio可以使用默认设置打开新的图形设备。HTH。


1
您能解释一下该怎么做吗?
Swift Arrow

20

如果在RStudio中收到此消息,请单击“绘图”选项卡中的“扫帚”图“清除所有绘图”,然后再次尝试plot()。

另外执行命令

graphics.off()

11
写下这三行graphics.off() par("mar") par(mar=c(1,1,1,1))
Hiren's


1

只是一个旁注。有时会出现“边距”错误,因为您想在R中保存高分辨率图形(例如dpi = 300res = 300)。
在这种情况下,您需要指定width和height。(顺便说一句, 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()
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.