Как контролировать размер / размер графика с помощью ggplot2 - PullRequest
8 голосов
/ 30 июля 2010

Я использую 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))

Спасибо за любые предложения заранее!

Ответы [ 2 ]

5 голосов
/ 30 июля 2010

Вместо того, чтобы делать это в 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}
2 голосов
/ 30 июля 2010

Параметры Sweave width и height влияют на размеры файла PDF, но не на размер рисунков в документе.Поставьте что-то вроде

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

после \begin{document}, чтобы получить меньшие сюжеты.

Источник: Руководство свипа , сек.4.1.2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...