首页 文章

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

提问于
浏览
102

我是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)

12 回答

  • 133

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

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

    后来我增加了宽度和高度:

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

    错误不在那里 . :)

    你也可以使用分辨率,如果分辨率很高,你需要更多的宽度和高度 .

  • 9

    我今天发现了同样的错误 . 我已经尝试了"Clear all Plots"按钮,但它给了我同样的错误 . 然后这个技巧对我有用, Try to increase the plot area by dragging. It will help you for sure.

  • 0

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

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

    par(mar = rep(2, 4))
    

    然后绘制第二个图像

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

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

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

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

    然后在绘图结束时做

    par(op)
    
  • 17

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

  • 2

    如果你在RStudio中收到此消息, clicking the 'broomstick' figure "Clear All Plots" in Plots tab 并再次尝试plot()可能会有效 .

    enter image description here

  • 18

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

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

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

  • 59

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

  • 5

    enter image description here

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

  • 73

    当我试图绘制高维数据时,我遇到了这个错误 . 如果这就是您的情况,请尝试多维缩放:http://www.statmethods.net/advstats/mds.html

  • 2

    几周我一直在努力解决这个错误(使用RStudio) . 我试图将绘图窗口移动得越来越小,但这并没有一直有所帮助 . 当我将应用程序移动(拖动)到我的大显示器时,问题就消失了!我被惊呆了......这么多浪费时间......我知道我的代码是正确的......

  • 0

    RStudio Plots画布限制了绘图的宽度和高度 . 但是,如果您从 Rmarkdown 代码块创建绘图,则它可以在没有画布字段限制的情况下工作,因为绘图区域根据纸张大小设置 .

    例如:

    ```{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)
        ```
    

相关问题