2010-07-29 1754 views
8

我正在使用ggplot2(分别为qplot)生成带Sweave的报告。现在我需要一些帮助调整剧情的大小。我使用下面的Sweave代码来包含它。如何使用ggplot2控制图的尺寸/大小

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

如果我添加一个宽度参数(如下图所示)以减少绘制,但不是真正缩小比例。

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

如果我使用ggsave()代替,我可以使用一个scale参数并影响生成的.pdf文件的大小。有没有办法影响剧情的维度而不保存(因为.pdf是由Sweave生成的)?有什么我需要添加到我的qplot代码?

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

Thx对于任何建议提前!

回答

5

而不是在ggplot2内执行此操作,请在打印图形的代码块之前添加以下LaTeX代码。

\SweaveOpts{width=x, height=y} 

xy以英寸的高度和宽度。

如果有一个特定的宽高比,你希望你的情节是,你可以设置ggplot2opts()。除非我有其他原因,否则我通常会按照Tufte的建议,尽量保持我的情节缩小到黄金比例。通常我都

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

很好的答案! (公认)。 +1来预测它不仅仅是一个Sweave问题,而是一个aspect.ratio事物。 – 2010-07-30 08:35:02

+1

散点图通常是最好的方形比例 - 先验通常没有理由偏向一个变量而不是另一个变量。 – hadley 2010-07-30 17:28:23

2

的Sweave选项widthheight影响PDF文件的尺寸,但不是在文件中的数字大小。把类似

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

\begin{document}后得到较小的情节。

来源:Sweave manual秒4.1.2