【问题标题】:Adjusting margins for R plots调整 R 图的边距
【发布时间】:2021-04-25 05:10:31
【问题描述】:

我对调整 R 图的边距很感兴趣。我在 MacOS 上使用 R Studio,在 2013 intel CPU Macbook pro 上运行。

这是我用于生成绘图的数据:

spins <- runif(50, min = 0, max = 50)

这是我用来生成绘图的代码:

hist(spins)

这是控制台的结果:

> hist(spins)
Error in plot.new() : figure margins too large

这是我的问题:

  1. 如何找出这个特定地块的当前边距?
  2. 如何修改此特定绘图的边距?
  3. 是否有一种方法可以修改一般绘图的边距(例如,我可以使用一组代码来找到对象的边距,然后使用第二组代码来修改边距吗?将显示在绘图区域中)?
  4. 是否有代码可用于自动调整绘图的边距,以便每次都显示所需的绘图?

【问题讨论】:

    标签: r plot margin


    【解决方案1】:

    par 函数可用于查看当前边距的大小并设置边距大小(加上一大堆其他东西)。

    运行par(c("mar", "mai")) 将以文本行 (mar) 和英寸 (mai) 报告当前页边距(从底部开始顺时针方向)。

    然后您可以使用以下代码设置边距:par(mar=c(2,2,2,0))par(mai=rep(0.4, 4))

    但问题可能是您使 RStudio 中的绘图窗格至少在一个维度上太小,因此当 hist 函数尝试创建绘图时,没有足够的空间用于绘图和边距信息。尝试在 RStudio 中拖动适当的分隔线以使绘图面板更大,然后再次尝试您的代码。另一种选择是运行命令dev.new(),它将为绘图打开一个新窗口(使用您的操作系统的默认设置),默认情况下将绘图发送到该新窗口而不是 RStudio 中的绘图窗格。

    【讨论】:

    • 感谢您的澄清。我想我可以使用您建议的代码让它工作。我确实有 1 个问题。有没有办法使用代码来确定hist(spins) 对象的当前边距是多少?
    • @Mel,par 函数会告诉你当前的设置。像hist 这样的基本绘图函数将使用这些设置。 'par("plt")` 结果也可能有帮助。另外,请参阅grconvertX 的帮助,了解如何将par("plt") 结果转换为对您更有意义的结果。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-28
    • 1970-01-01
    相关资源
    最近更新 更多