创建特定大小的绘图窗口

时间:2010-01-25 02:52:33

标签: r plot

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

4 个答案:

答案 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)
```