Я использую ggplot2 (соответственно qplot) для генерации отчета с Sweave. Теперь я нуждаюсь в некоторой помощи с корректировкой размера графика. Я использую следующий код Sweave для включения его.
\begin{figure}[htbp]
\begin{center}
<<fig=true,echo=false>>=
print(mygraph)
@
\caption{MyCaption}
\end{center}
\end{figure}
Если я добавляю, что аргумент ширины (как показанный ниже) для графического изображения сжат вниз, но не действительно уменьшен.
<<fig=true,echo=false,width=3>>=
Если я использую ggsave () вместо этого, я мог бы использовать аргумент масштаба и влиять на размер получающегося файла 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))
Спасибо за любые предложения заранее!
Вместо того, чтобы делать это в ggplot2
, добавьте следующий код LaTeX перед фрагментом кода, в котором вы распечатываете график.
\SweaveOpts{width=x, height=y}
x
и y
- высота и ширина в дюймах.
Если есть конкретное соотношение сторон, которое вы хотели бы иметь для вашего сюжета, вы можете установить его в ggplot2
с помощью opts ()
. Если у меня нет какой-либо другой причины, я обычно стараюсь, чтобы мои графики были масштабированы по золотому сечению, согласно предложениям Тафте. Обычно у меня есть
...
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}
Параметры развертки ширина
и высота
влияют на размеры файла PDF, но не на размер рисунков в документе. Поместите что-то вроде
\setkeys{Gin}{width=0.4\textwidth}
после \ begin {document}
, чтобы получить более мелкие участки.
Источник: Пособие по уборке , сек. 4.1.2