创建特定大小的绘图窗口

Rya*_*rio 58 plot r

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

Sha*_*ane 59

使用dev.new().(见相关问题.)

plot(1:10)
dev.new(width=5, height=4)
plot(1:20)
Run Code Online (Sandbox Code Playgroud)

更具体地说,使用哪些单位:

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

  • 单位为英寸用于屏幕显示(例如窗口或x11)和矢量绘图设备(例如pdf,postscript),以及用于位图绘制设备的像素(例如png,jpeg).Mointors通常每英寸显示72或96像素,打印到纸张每英寸150到1200像素. (6认同)
  • 如果没有结果Rstudio尝试:dev.new(width = 5,height = 4,noRStudioGD = TRUE) (3认同)
  • 我认为单位不是像素。我尝试了这个示例,它冻结了我的系统5分钟。生成的绘图窗口以及其中显示的所有内容都是巨大的。它可能是英寸,还是什么? (2认同)

Jam*_*son 22

这取决于您使用的设备.如果您使用的是pdf设备,则可以执行以下操作:

pdf( "mygraph.pdf", width = 11, height = 8 )
plot( x, y )
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用mfrow参数在pdf中划分空格,如下所示:

par( mfrow = c(2,2) )
Run Code Online (Sandbox Code Playgroud)

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

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

有所有设备的列表在这里.


qwr*_*qwr 10

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

ggsave("mtcars.png", width = 20, height = 20, units = "cm")
Run Code Online (Sandbox Code Playgroud)

在 R markdown 中,图形大小可以通过 chunk 指定

```{r, fig.width=6, fig.height=4}  
plot(1:5)
```
Run Code Online (Sandbox Code Playgroud)


ToJ*_*oJo 6

由于截至目前(2015年9月)RStudio(见此处)不支持@Shane的公认解决方案,我想就@James Thompson关于工作流程的答案添加建议:

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