18

過去に、RStudio を使用して ggplot2 を作成し、RSudio 内から PDF としてエクスポートしました。これは素晴らしく機能します。

現在、knitr を使用して自動化しようとしていますが、高品質の出力を作成するためにグラフの高さと重みをどこに設定すればよいかわかりません。

これが私の現在の試みですが、「並べた」グラフはそうではなく、回転した横向きのグラフもそうではなく、解像度が低いようです。

アドバイスをいただければ幸いです。ggplot2 と Knitr の両方が活発に開発されているようですが、これは素晴らしいことですが、インターネット検索で迷いました。LaTeX は私にとって初めてのことです。また、この一連のツールの一般的なワークフロー戦略もあれば幸いです。前もって感謝します。

\documentclass[letterpaper]{article}
\usepackage{lscape}
\begin{document}
<<load, echo=FALSE, results='hide', warning=FALSE, message=FALSE>>=
require(ggplot2)
@ 

Two on the first page.
<<first, echo=FALSE, fig.height=3, fig.cap="This is first", fig.pos='h'>>=
ggplot(mtcars, aes(mpg, wt))+geom_point()+facet_grid(vs ~ am, margins=TRUE)
@

Blah, blah, blah.
<<second, echo=FALSE, fig.height=3, fig.cap="This is second", fig.pos='h'>>=
ggplot(mtcars, aes(mpg, wt))+geom_point()+facet_grid(vs ~ am, margins=TRUE)
@
\newpage
Second page.

Side by side images:

<<third, echo = FALSE, out.width="2in", fig.cap='Side by side'>>=
ggplot(mtcars, aes(mpg, wt))+geom_point()+facet_grid(vs ~ am, margins=TRUE)
ggplot(mtcars, aes(mpg, wt))+geom_point()+facet_grid(vs ~ am, margins=TRUE)
@
\newpage
\begin{landscape}
This page is rotated
<<fourth, echo = FALSE, out.width="4in", fig.cap='Landscape'>>=
ggplot(mtcars, aes(mpg, wt))+geom_point()+facet_grid(vs ~ am, margins=TRUE)
@
\end{landscape}
\end{document}
4

2 に答える 2

10

私はそこにあなたをほとんど連れて行くことができます:

\documentclass[letterpaper]{article}
\usepackage{lscape}
\usepackage{float}
\begin{document}
<<load, echo=FALSE, results='hide', warning=FALSE, message=FALSE>>=
require(ggplot2)
@ 

Two on the first page.
<<first, echo=FALSE, fig.height=3, fig.cap="This is first", fig.pos='h'>>=
ggplot(mtcars, aes(mpg, wt))+geom_point()+facet_grid(vs ~ am, margins=TRUE)
@

Blah, blah, blah.
<<second, echo=FALSE, fig.height=3, fig.cap="This is second", fig.pos='h'>>=
ggplot(mtcars, aes(mpg, wt))+geom_point()+facet_grid(vs ~ am, margins=TRUE)
@

\newpage
Second page.

Side by side images:

\begin{figure}[H]
<<third, echo = FALSE, out.width="0.48\\linewidth",fig.width = 3.5,fig.height=2>>=
ggplot(mtcars, aes(mpg, wt))+geom_point()+facet_grid(vs ~ am, margins=TRUE)
ggplot(mtcars, aes(mpg, wt))+geom_point()+facet_grid(vs ~ am, margins=TRUE)
@
\caption{Side by side}
\end{figure}

\newpage
\begin{landscape}
This page is rotated.
<<fourth, echo = FALSE, fig.width = 4,fig.height = 3,out.width = "0.9\\linewidth">>=
ggplot(mtcars, aes(mpg, wt))+geom_point()+facet_grid(vs ~ am, margins=TRUE)
@
\end{landscape}
\end{document}

品質は私には問題ないように見えますが、システムPDFビューア(プレビュー、OS X)を使用している場合に限ります。組み込みのRStudioPDFビューアには、過去にいくつかのレンダリングの問題があったため、使用していません。

横向きのページの図をテキストの下に強制する方法がわかりません。通常、前の図と同じようにフロートパッケージを使用してこれを行いますが、横向きでは機能しないようです。LaTeXにかなり固有なので、tex.stackexchange.comで相談することをお勧めします。

fig.widthfig.heightとの間の相互作用ではありませんout.width。両方で遊んで、画像のサイズと画像内の要素のスケーリングがどうなるかを確認してください。1つは、作成時に実際の図のサイズに影響を与え、もう1つは、LaTeXドキュメントに含まれるときにその画像がどのように拡大縮小されるかに影響を与えます(私は思います)。

\caption{}また、フィギュア環境でサイドバイサイドを使用したことにも注意してください。そうしないと、各フィギュアのキャプションが作成されます。

于 2012-12-28T20:12:45.737 に答える
6

回転した 4 ページ目についてはわかりませんが、横に並べたプロットを取得するにはfig.show='hold'out.width='.45\\linewidth'

<<third, echo = FALSE, out.width="2in", fig.cap='Side by side',out.width='.45\\linewidth',fig.show='hold'>>=
ggplot(mtcars, aes(mpg, wt))+geom_point()+facet_grid(vs ~ am, margins=TRUE)
ggplot(mtcars, aes(mpg, wt))+geom_point()+facet_grid(vs ~ am, margins=TRUE)
@
于 2012-12-28T23:39:19.717 に答える