虽然我学会了如何使用网格绘图,但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
[R
答案 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"))