【问题标题】:Creating a Plot Window of a Particular Size创建特定大小的绘图窗口
【发布时间】:2010-01-25 02:52:33
【问题描述】:

如何创建具有特定宽度和高度(以像素等为单位)的新屏幕 R 绘图窗口?

【问题讨论】:

    标签: r plot


    【解决方案1】:

    使用dev.new()。 (见this related question。)

    plot(1:10)
    dev.new(width=5, height=4)
    plot(1:20)
    

    更具体地使用哪些单位:

    dev.new(width=5, height=4, unit="in")
    plot(1:20)
    dev.new(width = 550, height = 330, unit = "px")
    plot(1:15)
    

    编辑 Rstudio 的附加参数(2020 年 5 月),(感谢 user Soren Havelund Welling

    对于 Rstudio,添加 dev.new(width=5,height=4,noRStudioGD = TRUE)

    【讨论】:

    • 我认为单位不是像素。我尝试了这个例子,它冻结了我的系统 5 分钟。生成的绘图窗口很大,其中显示的所有内容都是如此。它可能是英寸或其他什么??
    • 我建议查看?Devices,因为这取决于您使用的设备。但是,是的,我认为它确实默认为英寸。
    • 屏幕显示(例如 windows 或 x11)和矢量绘图设备(例如 pdf、postscript)和位图绘图设备(例如 png、jpeg)的单位为英寸。显示器通常显示每英寸 72 或 96 像素,打印到纸上每英寸 150 到 1200 像素不等。
    • 感谢您的解释。我想知道为什么会有不一致的地方?如果一切都以像素为单位,那就更明显了。
    • 如果在 Rstudio 中没有结果,请尝试:dev.new(width=5,height=4,noRStudioGD = TRUE)
    【解决方案2】:

    这取决于您使用的设备。如果您使用的是pdf device,您可以这样做:

    pdf( "mygraph.pdf", width = 11, height = 8 )
    plot( x, y )
    

    然后您可以使用 mfrow 参数分割 pdf 中的空间,如下所示:

    par( mfrow = c(2,2) )
    

    这使得 pdf 具有四个可用于绘图的面板。不幸的是,有些设备采用与其他设备不同的单位。例如,我认为 X11 使用像素,而我确定 pdf 使用英寸。如果您只想创建多个设备并为它们绘制不同的东西,您可以使用dev.new(), dev.list(), and dev.next()

    其他可能有用的设备包括:

    有一个所有设备的列表here

    【讨论】:

      【解决方案3】:

      一个方便的保存绘图功能是ggsave(),它可以根据文件扩展名自动猜测设备类型,并平滑设备之间的差异。你保存一定的大小和单位是这样的:

      ggsave("mtcars.png", width = 20, height = 20, units = "cm")
      

      在 R markdown 中,figure size can be specified by chunk:

      ```{r, fig.width=6, fig.height=4}  
      plot(1:5)
      ```
      

      【讨论】:

        【解决方案4】:

        由于截至目前(2015 年 9 月),RStudio 不支持 @Shane 的公认解决方案(请参阅 here),我想向 @James Thompson 回答有关工作流程的建议:

        如果您使用SumatraPDF 作为查看器,则无需在更改之前关闭 PDF 文件。 Sumatra 不会将打开的文件置于只读状态,因此不会阻止它被覆盖。因此,一旦您使用 Sumatra 打开 PDF 文件,RStudio(或任何其他 R IDE)的更改会立即显示在 Sumatra 中。

        【讨论】:

        • 在 Rstudio 中对我有用,直到 noRStudioGD 设置为 TRUE, dev.new(width=5,noRStudioGD = TRUE)
        • 是否有类似的查看器可以以这种方式在 mac 上工作?
        猜你喜欢
        • 2011-05-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多