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

Ste*_*ang 105 plot 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)     
Run Code Online (Sandbox Code Playgroud)

错误plot.new():图边距太大

tmp <- round(leg,2)
axis(1,at=seq(0,1,length=length(leg)), labels=tmp,cex.axis=1)
Run Code Online (Sandbox Code Playgroud)

Ste*_*ers 139

Rstudio中可能会发生此错误,因为您的"Plots"窗格只是太小了.尝试缩放"文件,图,包,帮助,查看器",看看它是否有帮助!

  • 这解决了我的问题!我扩展了"环境"窗口,缩小了"情节"等窗口.我只需要扩展窗口.谢谢! (8认同)

Rei*_*son 78

我怀疑问题是你的layout()调用创建的小数字区域2 不够大,只能包含默认边距,更不用说情节了.

在导致问题的行之前尝试:

par(mar = rep(2, 4))
Run Code Online (Sandbox Code Playgroud)

然后绘制第二个图像

image(as.matrix(leg),col=cx,axes=T)
Run Code Online (Sandbox Code Playgroud)

你需要在par()我展示的电话中使用边距的大小才能做到这一点.您可能还需要增加要绘制的实际设备的大小.

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

op <- par(oma=c(5,7,1,1))
Run Code Online (Sandbox Code Playgroud)

然后在绘图结束时做

par(op)
Run Code Online (Sandbox Code Playgroud)

  • 这对我来说是正确的提示。我必须增加图片大小,或降低分辨率png(filename =“ myfile.png”,res = 150,width = 1000,height = 1000)` (2认同)

Jus*_*tas 64

如果你在RStudio中收到这条消息,点击Plots选项卡中的'broomstick'图"Clear All Plots",再次尝试plot()可能会有效.

在此输入图像描述

  • `graphics.off()` (13认同)

小智 21

这有时会发生在RStudio中.为了解决这个问题,您可以尝试绘制到外部窗口(仅限Windows):

windows() ## create window to plot your file
## ... your plotting code here ...
dev.off() 
Run Code Online (Sandbox Code Playgroud)


Jan*_*ena 18

我在R Studio中遇到了这个错误,只需通过点击并从右向左拖动边栏使侧边栏更大来修复.

  • 这是赢家。为什么这甚至是一件事? (2认同)
  • 除了这个,其他解决方案都不适合我。 (2认同)

小智 10

检查您的对象是列表还是向量.为此,请键入is.list(yourobject).如果是这样,请尝试重命名x<-unlist(yourobject).这将使它成为你可以绘制的矢量.


vka*_*lit 5

在此输入图像描述

如果您使用RStudio,只需缩放此区域.