【问题标题】:"Error in plot.new() : figure margins too large"“plot.new() 中的错误:图形边距太大”
【发布时间】:2011-05-23 13:29:57
【问题描述】:

在R中,我遇到了如下运行错误:

> png("p3_sa_para.png", 4, 2)
> par(mfrow=c(1,2))
> plot(c(1:10), ylab="Beta",xlab="Iteration")
Error in plot.new() : figure margins too large
> plot(c(1:10), ylab="Gamma",xlab="Iteration")
Error in plot.new() : figure margins too large
> dev.off()
X11cairo 
       2 

我已经把图片尺寸小到 4 x 2,为什么还报“图边距太大”?如何用 png 解决这个问题?

奇怪的是,如果我将 png 更改为 pdf,那么它会起作用。我也想知道为什么?

感谢和问候!

【问题讨论】:

  • 如果您阅读您正在使用的 R 函数的帮助,您会省去很多麻烦。 widthheightpng 设备上的内容在 ?png 中明确说明
  • @gavin 我不同意,我遇到了确切的问题,我首先要寻找的是绘图帮助,然后是标准帮助,毕竟无用的信息,我最后去了 png。只有当您知道应该从哪里查看时,帮助才是有用的。
  • @Tg 在出现错误的情况下,合乎逻辑的做法是将其分解。如果情节在没有png() 的情况下有效,我们知道问题出在png() 上。如果删除png() 没有任何区别,那么我们已经缩小了问题的范围。对于这样的事情,应该没有任何真正需要到处阅读多个帮助文件等,如果你采用一种合乎逻辑的方法来解决问题,找出问题所在,然后阅读相关的帮助文件。您是否不同意阅读帮助或其他内容的需要?
  • @gavin 我并不是说人们不应该阅读帮助,但我说你不应该假设他没有阅读任何帮助。

标签: r png plot


【解决方案1】:

png() 函数使用 像素 而不是英寸,所以试试类似

png("p3_sa_para.png", 640, 480)

回答您的第二个问题,是的,pdf() 使用英寸,因为矢量图形格式没有像素的概念。 help(png)help(pdf) 函数是你的朋友。

【讨论】:

    【解决方案2】:

    问题可能只是由于使用某个 IDE 而引起的。我正在使用 Rstudio,但我遇到了很多错误。我完全相同的代码在控制台中运行良好。

    【讨论】:

      【解决方案3】:

      即使我在 R-Studio 上也遇到了错误,而在控制台上显示的情节很好。简单重启 RStudio 即可解决问题!话虽如此,RStudio 的支持页面建议重置图形设备dev.off() 可能会有所帮助。 http://support.rstudio.org/help/kb/troubleshooting/problem-with-plots-or-graphics-device

      【讨论】:

        【解决方案4】:

        当您使用 IDE 时,这是一个常见的绘图问题,它有一个地方可以生成和显示绘图,认为这是一个普遍问题,并且背后有一个逻辑: 当你告诉 R 绘制一些东西时,R 首先查看数据,然后查看它可以使用的区域,以便它可以进行绘制。

        png() 和类似的命令:

        在您的情况下,您为绘图提供了一个 4 x 2 像素的区域来绘制它,因此您可以通过增加适合您的绘图大小的区域来解决它。 (作为 Dirk Eddelbuettel mentioned

        在 IDE 的情况下

        这在大多数情况下要简单得多,只需通过拖动边距来增加绘图区域,然后重新运行您的代码(如果您之前打开过任何 par(),请关闭任何 par() 并创建新的)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-05-27
          • 2012-09-27
          • 2023-03-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多