2010-07-29 41 views
8

Sto usando ggplot2 (rispettivamente qplot) per generare un report con Sweave. Ora ho bisogno di aiuto per la regolazione della dimensione della trama. Io uso il seguente codice Sweave per includerlo.Come controllare la dimensione/dimensione di un grafico con ggplot2

\begin{figure}[htbp] 
\begin{center} 
<<fig=true,echo=false>>= 
print(mygraph) 
@ 
\caption{MyCaption} 
\end{center} 
\end{figure} 

Se aggiungo un argomento larghezza (come mostrato qui sotto) per trama è spremuto verso il basso, ma non è davvero ridotta.

<<fig=true,echo=false,width=3>>= 

Se uso ggsave(), invece, potrei usare un argomento scala e di influenzare la dimensione del file .pdf risultante. C'è un modo per influenzare le dimensioni della trama senza salvarla (dal momento che il file .pdf è generato da Sweave in ogni caso)? C'è qualcosa che devo aggiungere al mio codice qplot?

mygraph=qplot(date,value,data=graph1,geom="line",colour=variable,xlab="",ylab="") 
+ scale_y_continuous(limits = c(-0.3,0.3)) 

Thx per eventuali suggerimenti in anticipo!

risposta

5

Invece di eseguire questa operazione entro ggplot2, aggiungere il seguente codice LaTeX prima del frammento di codice in cui si stampa il grafico.

\SweaveOpts{width=x, height=y} 

x e y sono altezza e larghezza in pollici.

Se esiste un particolare formato per il quale si desidera che la trama sia, è possibile impostarla in ggplot2 con opts(). A meno che non abbia qualche altra ragione, di solito cerco di mantenere i miei diagrammi in scala al rapporto aureo, secondo i suggerimenti di Tufte. Di solito ho

... 
SweaveOpts{width=8, height=5} 
... 
<<label = "makeplot", echo = F>>= 
    p <- ggplot(mpg, aes(displ, hwy)) + 
    geom_point()+ 
    opts(aspect.ratio = 2/(1+sqrt(5))) 
@ 
... 
\begin{figure}[htbp] 
\begin{center} 
<<fig=true,echo=false>>= 
    print(p) 
@ 
\caption{MyCaption} 
\end{center} 
\end{figure} 
+0

Ottima risposta! (accettato). +1 per anticipare che non è solo un problema di Sweave, ma una questione di aspect.ratio. –

+1

I grafici a dispersione sono in genere i migliori con un rapporto di aspetto quadrato: a priori non esiste in genere un motivo per favorire una variabile rispetto all'altra. – hadley

2

Le opzioni Sweave width e height influenzare le dimensioni del file PDF, ma non la dimensione delle figure nel documento. Mettere qualcosa di simile

\setkeys{Gin}{width=0.4\textwidth} 

dopo \begin{document} per ottenere lotti più piccoli.

Fonte: Sweave manual, sec. 4.1.2

Problemi correlati