相同的代码在R和R studio中的工作方式不同

时间:2017-01-16 08:26:59

标签: r r-grid

虽然我学会了如何使用网格绘图,但R studio显示结果与书中的示例不同。所以我在R中运行相同的代码,并得到相同的结果到书中的一个例子。我不知道这个原因......

下面是代码。

library(grid)
grid.newpage()
pushViewport(plotViewport(c(5, 4, 2, 2)))
pushViewport(dataViewport(pressure$temperature,pressure$pressure,name="plotRegion"))
grid.points(pressure$temperature, pressure$pressure,name="dataSymbols")
grid.rect()
grid.xaxis()
grid.yaxis()
grid.text("temperature", y=unit(-3, "lines"))
grid.text("pressure", x=unit(-3, "lines"), rot=90)
grid.edit("dataSymbols", pch=2)
upViewport(2)
grid.rect(gp=gpar(lty="dashed"))
downViewport("plotRegion")
grid.text("Pressure (mm Hg)\nversus\nTemperature (Celsius)",x=unit(150, "native"), y=unit(600, "native"))

R studio

enter image description here

[R

enter image description here

1 个答案:

答案 0 :(得分:3)

此代码使用gpar中定义的默认值。帮助说:

  

默认参数设置由ROOT视口定义,即   从图形设备获取其设置。这些默认值可能不同   设备之间(例如,PNG的默认填充设置不同)   设备与PDF设备相比)。

使用RStudio:

get.gpar()$fill
#[1] "white"

使用RGui:

get.gpar()$fill
#[1] "transparent"

因此,RStudio设备具有不同的设置。您需要明确指出您不希望填充矩形。

library(grid)
grid.newpage()
pushViewport(plotViewport(c(5, 4, 2, 2)))
pushViewport(dataViewport(pressure$temperature,pressure$pressure,name="plotRegion"))
grid.points(pressure$temperature, pressure$pressure,name="dataSymbols")
grid.rect(gp = gpar(fill = NA))
grid.xaxis()
grid.yaxis()
grid.text("temperature", y=unit(-3, "lines"))
grid.text("pressure", x=unit(-3, "lines"), rot=90)
grid.edit("dataSymbols", pch=2)
upViewport(2)
grid.rect(gp=gpar(lty="dashed", fill = NA))
downViewport("plotRegion")
grid.text("Pressure (mm Hg)\nversus\nTemperature (Celsius)",x=unit(150, "native"), y=unit(600, "native"))

resulting plot