2011-02-01 14 views
6

Me gustaría ajustar una trama de celosía completa en una pequeña región de una trama existente.¿Diagramas de enrejado de límite a viewports?

xyplot(decrease ~ treatment, OrchardSprays, groups = rowpos, type = "a") 
pushViewport(viewport(.2, .7, .2, .2)) 
grid.rect(gp=gpar(fill="white")) 

me da esto:

enter image description here

Así ventana gráfica es empujada. Pero cuando si una función de celosía se llama de nuevo, utiliza todo el dispositivo, como si llamar grid.newpage():

xyplot(decrease ~ treatment, OrchardSprays, groups = rowpos, type = "a") 

¿Hay una manera de limitar parcelas de celosía a una zona predefinida en un dispositivo como en el ejemplo anterior?

Respuesta

6

Tienes que llamar directamente print con newpage argumento establecido en FALSE (frente al valor por defecto):

xyplot(decrease ~ treatment, OrchardSprays, groups = rowpos, type = "a") 
pushViewport(viewport(.2, .7, .2, .2)) 
print(xyplot(decrease ~ treatment, OrchardSprays, groups = rowpos, type = "a"), newpage=FALSE) 

se puede encontrar en el manual de rejilla (r_instalation_path/biblioteca/rejilla/doc/grid.pdf) , sección "Agregar celosía a la grilla".

enter image description here

Cuestiones relacionadas