New()中的错误: R 中的图边距太大

我是 R 的新手,但我已经用较小的数据集制作了许多相关图。然而,当我尝试绘制一个大型数据集(2gb +)时,我可以很好地生成图表,但是图例并没有显示出来。有什么建议吗?还是其他选择?

library(gplots)
r.cor <- cor(r)
layout(matrix(c(1,1,1,1,1,1,1,1,2,2), 5, 2, byrow = TRUE))
par(oma=c(5,7,1,1))
cx <- rev(colorpanel(25,"yellow","black","blue"))
leg <- seq(min(r.cor,na.rm=T),max(r.cor,na.rm=T),length=10)
image(r.cor,main="Correlation plot Normal/Tumor data",axes=F,col=cx)
axis(1, at=seq(0,1,length=ncol(r.cor)), labels=dimnames(r.cor)[[2]],
cex.axis=0.9,las=2)
axis(2,at=seq(0,1,length=ncol(r.cor)), labels=dimnames(r.cor)[[2]],
cex.axis=0.9,las=2)
image(as.matrix(leg),col=cx,axes=T)

plot.new()中的错误: 数字边距太大

tmp <- round(leg,2)
axis(1,at=seq(0,1,length=length(leg)), labels=tmp,cex.axis=1)
441356 次浏览

问题在于,由 layout()调用创建的小数字区域2的足够大不足以只包含默认的边距,更不用说绘制图形了。

更一般的情况是,如果设备上绘图区域的大小不足以实际进行任何绘图,则会出现此错误。对于 OP 来说,问题是绘图设备太小,无法包含所有的子图,而且它们的边距 还有留下一个足够大的绘图区域来绘制。

如果 Plot 选项卡太小,无法留出足够的空间来包含边距、绘制区域等,RStudio 用户可能会遇到此错误。这是因为该窗格的物理大小就是图形设备的大小。这些都不是独立的问题; RStudio 中的绘图窗格只是另一个绘图设备,如 png()pdf()windows()X11()

解决方案包括:

  1. 减少边距的大小; 这可能会有所帮助,特别是当您试图在同一个设备上绘制多个图形时,如 OP 的情况。

  2. 通过调用设备(例如 png()pdf()等)或调整包含设备的窗口/窗格的大小来增加设备的物理尺寸

  3. 减小图上文字的大小,因为这样可以控制页边距的大小等。

减小页边距的大小

在引起问题的行之前,请尝试:

par(mar = rep(2, 4))

然后绘制第二幅图像

image(as.matrix(leg),col=cx,axes=T)

你将需要发挥与大小的边缘上的 par()调用我显示得到这一权利。

增加设备的尺寸

您可能还需要增加正在绘图的实际设备的大小。

最后一个提示,在更改它们之前保存 par()默认值,因此将现有的 par()调用更改为:

op <- par(oma=c(5,7,1,1))

then at the end of plotting do

par(op)

检查对象是列表还是向量。要做到这一点,键入 is.list(yourobject)。如果这是真的,尝试将其重命名为 x<-unlist(yourobject)。这将使它成为一个矢量,你可以绘制。

我在尝试绘制高维数据时出现了这个错误。如果这就是你的问题所在,试试多维标度: http://www.statmethods.net/advstats/mds.html

这个错误可能发生在 Rstudio,仅仅是因为“ Plot”窗格太小了。尝试缩放您的“文件,情节,包,帮助,查看器”,看看它是否有帮助!

如果您在 RStudio 中得到此消息,则 点击“扫帚”图形“清除所有阴谋”在阴谋标签和再次尝试 plot ()可能有效。

enter image description here

我在 R Studio 中得到了这个错误,通过从右向左点击并拖动边缘使侧边栏变大来简单地修复了这个错误。

图片来源: https://janac.medium.com/error-in-plot-new-figure-margins-too-large-in-r-214621b4b2af

RStudio 绘图画布限制了绘图的宽度和高度。但是,如果您使用 减价代码块绘制绘图,则不受画布字段限制,因为绘图区域是根据纸张大小设置的。

例如:

    ```{r}
#inside of code chunk in Rmarkdown
grid <- par(mfrow=c(4, 5))
plot(faithful, main="Faithful eruptions")
plot(large.islands, main="Islands", ylab="Area")
...
par(grid)
```

这种情况有时会在 RStudio 中发生。为了解决这个问题,你可以尝试绘制到一个外部窗口(仅适用于 Windows) :

windows() ## create window to plot your file
## ... your plotting code here ...
dev.off()

enter image description here

如果使用 RStudio,只需放大这个区域。

我为这个错误纠结了几个星期(使用 RStudio)。我尝试将情节窗口移动得越来越大,但这并不总是有帮助。当我将应用程序移动(拖动)到更大的显示器时,问题就消失了!我很震惊... 浪费了这么多时间... 我知道我的代码是正确的..。

我今天发现了这个错误。最初,我试图将它输出到一个低宽度和高度的 .jpeg文件。

jpeg("method1_test.jpg", width=900, height=900, res=40)

后来我把宽度和高度增加到:

jpeg("method1_test.jpg", width=1900, height=1900, res=40)

错误并不存在。 :)

你也可以玩分辨率,如果分辨率高,你需要更多的宽度和高度。

我今天发现了同样的错误。我尝试了“清除所有情节”按钮,但它给我同样的错误。这招对我很管用, 试着通过拖动来增加地块面积,这对你肯定有帮助。

我刚刚使用了 Clear all plot,然后再次给 plot 命令,这很有帮助

如果边距较小,那么最好从新的绘图设备开始:

dev.new()
# plot()
# save your plot
dev.off()

你永远不会得到边际误差,除非你绘制的东西不能容纳大。