2010-07-29 22 views
8

Estoy usando ggplot2 (qplot respectivamente) para generar un informe con Sweave. Ahora necesito ayuda con el ajuste del tamaño de la trama. Uso el siguiente código de Sweave para incluirlo.Cómo controlar la dimensión/tamaño de un gráfico con ggplot2

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

Si añado un argumento ancho (como se muestra a continuación) a trama se aprieta hacia abajo, pero no es realmente reducido.

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

Si uso ggsave() en su lugar, podría utilizar un argumento de escala e influir en el tamaño del archivo .pdf resultante. ¿Hay alguna manera de influir en las dimensiones de la trama sin guardarla (dado que el archivo .pdf es generado por Sweave de todos modos)? ¿Hay algo que necesite agregar a mi código qplot?

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

¡Gracias por cualquier sugerencia con anticipación!

Respuesta

5

En lugar de hacer esto dentro de ggplot2, agregue el siguiente código LaTeX antes del fragmento de código donde imprime el gráfico.

\SweaveOpts{width=x, height=y} 

x y y son la altura y el ancho en pulgadas.

Si hay una relación de aspecto particular que le gustaría que su trama sea, puede configurar esto en ggplot2 con opts(). A menos que tenga alguna otra razón, por lo general trato de mantener mis parcelas en escala a la proporción áurea, según las sugerencias de Tufte. Por lo general tengo

... 
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

¡Excelente respuesta! (aceptado). +1 por anticipar que no es solo un problema de Sweave, sino un aspecto de aspect.ratio. –

+1

Los diagramas de dispersión suelen ser mejores con una relación de aspecto cuadrada: a priori, no suele haber motivo para favorecer a una variable sobre la otra. – hadley

2

Las opciones Sweave width y height influir en las dimensiones del archivo PDF pero no el tamaño de las figuras en el documento. Poner algo como

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

después \begin{document} para obtener parcelas más pequeñas.

Fuente: Sweave manual, sec. 4.1.2

Cuestiones relacionadas