【发布时间】:2010-01-25 02:52:33
【问题描述】:
如何创建具有特定宽度和高度(以像素等为单位)的新屏幕 R 绘图窗口?
【问题讨论】:
如何创建具有特定宽度和高度(以像素等为单位)的新屏幕 R 绘图窗口?
【问题讨论】:
使用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)
【讨论】:
?Devices,因为这取决于您使用的设备。但是,是的,我认为它确实默认为英寸。
这取决于您使用的设备。如果您使用的是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。
【讨论】:
一个方便的保存绘图功能是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)
```
【讨论】:
由于截至目前(2015 年 9 月),RStudio 不支持 @Shane 的公认解决方案(请参阅 here),我想向 @James Thompson 回答有关工作流程的建议:
如果您使用SumatraPDF 作为查看器,则无需在更改之前关闭 PDF 文件。 Sumatra 不会将打开的文件置于只读状态,因此不会阻止它被覆盖。因此,一旦您使用 Sumatra 打开 PDF 文件,RStudio(或任何其他 R IDE)的更改会立即显示在 Sumatra 中。
【讨论】: