如何使用ggplot2控制绘图的尺寸/大小

Mat*_*ert 8 r ggplot2

我正在使用ggplot2(分别是qplot)来生成一个带有Sweave的报告.现在我需要一些帮助来调整绘图的大小.我使用以下Sweave代码来包含它.

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

如果我添加一个宽度参数(如下图所示)来绘制图表,但是没有真正按比例缩小.

<<fig=true,echo=false,width=3>>=
Run Code Online (Sandbox Code Playgroud)

如果我使用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))
Run Code Online (Sandbox Code Playgroud)

Thx提前提出任何建议!

JoF*_*wld 5

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

\SweaveOpts{width=x, height=y}
Run Code Online (Sandbox Code Playgroud)

x并且y是以英寸为单位的高度和宽度.

如果您希望绘制特定的宽高比,则可以将其设置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}
Run Code Online (Sandbox Code Playgroud)