如何创建具有特定宽度和高度(以像素为单位)的新屏幕R绘图窗口?
答案 0 :(得分:55)
使用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)
答案 1 :(得分:17)
这取决于您使用的设备。如果您使用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。
答案 2 :(得分:6)
由于截至目前(2015年9月)RStudio(见here)不支持@Shane的公认解决方案,我想就@James Thompson关于工作流程的答案添加建议:
如果您使用SumatraPDF作为查看器,则在对其进行更改之前无需关闭PDF文件。苏门答腊不会将打开的文件设置为只读,因此不会阻止它被覆盖。因此,一旦您使用Sumatra打开PDF文件,RStudio(或任何其他R IDE)的更改将立即显示在Sumatra中。
答案 3 :(得分:0)
ggsave()
是保存图形的便捷功能,它可以根据文件扩展名自动猜测设备类型,并平滑设备之间的差异。您可以像这样保存一定的大小和单位:
ggsave("mtcars.png", width = 20, height = 20, units = "cm")
在R标记中,figure size can be specified by chunk:
```{r, fig.width=6, fig.height=4}
plot(1:5)
```