2017-01-16 114 views
2

雖然我學會了如何使用網格進行繪圖,但R工作室顯示的結果與書中的示例不同。所以我在R中運行相同的代碼,並得到了與書中示例相同的結果。我不知道這個原因...相同的代碼在R和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")) 

ř工作室

enter image description here

ř

enter image description here

+1

嘗試輸出到文件? – zx8754

+0

你也可以分享一些數據,以便我們重現這一點嗎? –

+0

@RomanLuštrik它是完全可重複的。 '壓力'在數據集包中。 – Roland

回答

3

該代碼使用在gpar定義的默認值。幫助說:

默認參數設置由ROOT視口定義,其中 從圖形設備中獲取其設置。設備之間的這些默認值可能不同( )(例如,與PDF設備相比,對於PNG 設備,默認填充設置不同)。

隨着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

相關問題