2010-07-29 12 views
8

Ich benutze ggplot2 (bzw. qplot), um einen Bericht mit Swave zu generieren. Jetzt brauche ich Hilfe bei der Anpassung der Plotgröße. Ich verwende den folgenden Sweave-Code, um es einzuschließen.Wie man die Dimension/Größe eines Plots mit ggplot2 steuert

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

Wenn ich ein Breite-Argument (wie unten gezeigt) hinzufügen, wird geplottet, aber nicht wirklich verkleinert.

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

Wenn ich ggsave() verwenden, stattdessen konnte ich eine Skala Argument verwenden und die Größe der resultierenden PDF-Datei beeinflussen. Gibt es eine Möglichkeit, die Dimensionen der Handlung zu beeinflussen, ohne sie zu speichern (da die .pdf sowieso von Sweave generiert wird)? Gibt es etwas, das ich meinem qplot-Code hinzufügen muss?

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

Thx für irgendwelche Vorschläge im Voraus!

Antwort

5

Anstatt dies innerhalb ggplot2 zu tun, fügen Sie den folgenden LaTeX-Code vor dem Code-Chunk, wo Sie das Diagramm drucken.

\SweaveOpts{width=x, height=y} 

x und y sind Höhe und die Breite in Zoll.

Wenn Sie ein bestimmtes Seitenverhältnis haben möchten, können Sie dies in ggplot2 mit opts() einstellen. Wenn ich keinen anderen Grund habe, versuche ich normalerweise, meine Pläne nach Tuftes Vorschlägen auf den Goldenen Schnitt zu skalieren. Normalerweise habe ich

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

Große Antwort! (akzeptiert). +1 für das Vorwegnehmen, dass es nicht nur ein Sweave-Problem ist, sondern eine aspect.ratio-Sache. –

+1

Scatterplots sind normalerweise am besten mit einem quadratischen Seitenverhältnis - a priori gibt es normalerweise keinen Grund, eine Variable gegenüber der anderen zu bevorzugen. – hadley

2

Die Sweave Optionen width und height beeinflussen die Dimensionen der PDF-Datei aber nicht die Größe der Figuren in dem Dokument. Setzen Sie so etwas wie

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

nach \begin{document} auf kleinere Parzellen zu erhalten.

Quelle: Sweave manual, sek. 4.1.2

Verwandte Themen