2014-08-29 13 views
7

Non so come specificare i margini per la stampa PDF con il pacchetto R griglia.Aggiungi margini con pacchetto R griglia

creo un oggetto grid.arrange() e l'ho messo in un PDF come questo:

pdf('test.pdf',11.69,8.27) 
grid.arrange(textGrob('text1', gp=gpar(cex=4)), 
      ncol=1, main=textGrob('title', gp=gpar(cex=1.5)), 
      widths = c(1), heights = c(1)) 
dev.off() 

Ma il titolo è spinta sul bordo superiore del foglio. Vorrei aggiungere margini. Se aggiungo uno textGrob al posto della funzione main= per il titolo, posso tenerlo lontano dalla cima, ma non è una soluzione per me perché devo mettere i grafici e sono anche vicini al limite.

risposta

3

arrangeGrob ha un argomento viewport,

vp = viewport(height=unit(0.8, "npc"), 
          width=unit(5, "cm")) 

g = arrangeGrob(textGrob('text1', gp=gpar(cex=4)), 
       top = textGrob('title', gp=gpar(cex=1.5)), 
       vp=vp) 
grid.newpage() 
grid.rect(vp=vp) 
grid.draw(g) 

enter image description here

+0

Perfetto, grazie mille! – Ben

0

Come ho tracciare in un pdf (11.69,8.27), ho cambiato questa:

vp = viewport(height=unit(8.17, "inches"), width=unit(11.59, "inches")) 
g$vp = vp 
grid.newpage() 
grid.rect(vp=vp,gp=gpar(col="white")) 
grid.draw(g) 

come questo, il i bordi del rettangolo non sono visibili e ho margini di circa 1 mm.

+0

non è davvero una risposta, inoltre, il rettangolo bianco sembra inutile, lo metto solo per illustrazione. – baptiste