2017-01-16 10 views
2

Пока я узнал, как рисовать с использованием сетки, студия R продемонстрировала результат differnet из примера в книге. Поэтому я запускаю тот же код в 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")) 

R студия

enter image description here

R

enter image description here

+1

Try для вывода в файл? – zx8754

+0

Можете ли вы также поделиться некоторыми данными, чтобы мы могли воспроизвести это? –

+0

@ RomanLuštrik Он полностью воспроизводимый. «Давление» находится в пакете наборов данных. – Roland

ответ

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