我正在使用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提前提出任何建议!
而不是在其中执行此操作ggplot2,在打印图形的代码块之前添加以下LaTeX代码.
\SweaveOpts{width=x, height=y}
Run Code Online (Sandbox Code Playgroud)
x并且y是以英寸为单位的高度和宽度.
如果您希望绘制特定的宽高比,则可以将其设置ggplot2为opts().除非我有其他原因,否则根据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)