【问题标题】:How to solve 'Error in plot.new() : figure margins too large' in rstudio?如何解决 rstudio 中的“plot.new() 中的错误:图形边距太大”?
【发布时间】:2017-07-04 14:57:55
【问题描述】:

我已经阅读了与这个问题相关的所有帖子。但事实是:如果你有很多变量要绘制,这个问题仍然会发生。
我的笔记本电脑分辨率是 1080p,我打开 rstudio 并运行以下脚本:

a<-iris[,1:4]
> a<-t(a)
> a<-as.data.frame(a)
> pairs(a)
Error in plot.new() : figure margins too large

我已经从类似的问题中尝试了该站点中的所有解决方案,但没有一个可行。
我真的很需要这个情节,但无法得到它。如何解决这个问题?

【问题讨论】:

  • a 是一个有 150 列的数据框。您正在尝试制作一个带有 150x150 子图的图。我不确定你能否解决这个特殊问题。

标签: r rstudio


【解决方案1】:

我可以想象的唯一方法是(正如我认为之前建议的那样)将输出发送到 PDF 文件,然后使用 PDF 查看器查看它。 (我的回答与您对this question 的回答非常相似,只是我使用的是 PDF 而不是 PNG 作为输出...也尝试了 PNG,似乎适用于 2000x2000 像素...)

对于较小/合理的示例,使用dev.new() 缩放和/或打开外部图形窗口应该可以工作...

a <- iris[,1:4]
a <- t(a)
a <- as.data.frame(a)
pdf(file="tmp.pdf",width=100,height=100)
pairs(a,gap=0,pch=".")
dev.off()

这在我的笔记本电脑上花费了大约 18 秒,并生成了一个 1.2M 的 PDF 文件。这是我在 PDF 查看器中完全缩小(“适合窗口”)时图片的样子:

如果您有 150x150 的子图,并且希望以 1 厘米宽 x 1 厘米高的方式渲染每个子图(这对于查看任何细节来说似乎都非常小),您要么需要非常高分辨率的投影仪,要么需要一个大的格式(海报)打印机。您可以使用 PDF 查看器滚动图像,但这似乎不太实用...

【讨论】:

  • 仅适用于 pdf 格式?png(file="tmp.png",width=1000,height=1000) 仍然得到 figure margins too large 错误。
  • 为我工作 10000 x 10000 像素。
  • 嗯。为我工作到 1000x1000 像素(虽然 PNG 太粗糙,看不到任何东西......)
  • 1000*1000 对我不起作用。 10000*10000 没问题。我不明白为什么 rstudio 不能自动调整绘图大小。
  • 它不是为这个用途而设计的。
【解决方案2】:

我会以两种方式回答。首先,当您使用 iris 数据集时,您确定要绘制 a 的转置图吗?这意味着比较单个花朵,而不是特征(如萼片长度等)。这是你想要的吗?

> a <- iris[,1:4]
> pairs(a)

这将为您提供 4x4 对图(比较花卉特征)。但是,如果您确实想要观察结果之间的配对图而不是特征,那么您要求的是 150x150 配对图!在我看来,这样做的唯一方法是生成多对图,每个图对应这 150 个项目的一个子集。

【讨论】:

  • 我只是以iris为例,表示rstudio在绘制150*150等大比例尺时有问题。到目前为止,rstudio中的“图形边距太大”还没有可靠的解决方案
【解决方案3】:

问题似乎是因为图像不适合为全局设置渲染的图形窗口。确保您的缩放比例不超过 100 %

【讨论】:

  • 这应该是一条评论
【解决方案4】:

RStudio 根本无法显示非常大的图。如果您有分组变量,请为每个类别/因素指定行并再次绘制;这变成了一个较小的情节:

EX:如果您有一个数据框,其中包含 2 个组 x 和 y 的 100 行,如列“组”中,以及 20 列作为变量为每个组绘制,获取 x 的所有列的图(对应到第 1:50 行):

library(tidyverse)
df[1:50,] %>%
keep(is.numeric) %>% 
  gather() %>% 
  ggplot(aes(value)) +
    facet_wrap(~ key, scales = "free") +
    geom_histogram()

希望这会有所帮助!

【讨论】:

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