2017-01-16 3 views
2

Während ich gelernt habe, mit Raster zu plotten, zeigte R Studio das Ergebnis von einem Beispiel im Buch. Also führe ich den gleichen Code in R aus und bekomme das gleiche Ergebnis zu einem Beispiel in Buch. Ich weiß diesen Grund nicht ...Derselbe Code funktioniert anders in R und R Studio

ist unten Code.

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

Versuchen Sie, eine Datei ausgegeben? – zx8754

+0

Können Sie auch Daten teilen, damit wir das reproduzieren können? –

+0

@ RomanLuštrik Es ist vollständig reproduzierbar. "Druck" ist im Datenpaket enthalten. – Roland

Antwort

3

Dieser Code verwendet die in gpar definierten Standardwerte. Die Hilfe sagt:

Die Standard-Parametereinstellungen durch die ROOT Ansichtsfenster definiert, die seine Einstellungen aus dem Grafikgerät nimmt. Diese Standardeinstellungen können zwischen den Geräten abweichen (z. B. ist die Standardfülleinstellung für ein PNG -Gerät anders als bei einem PDF-Gerät).

Mit RStudio:

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

Mit Rgui:

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

Somit hat die RStudio Gerät verschiedene Einstellungen. Sie müssen explizit angeben, dass die Rechtecke nicht gefüllt werden sollen.

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