13

ggplot2 で行われたいくつかのグラフィックスを含むスウィーブ レポートを作成しようとしています。長期的には環境を探していますが、コードとプロットのみを含む単純な .Rnw ファイルをここで使用します

 \documentclass[a4paper]{article}
 \SweaveOpts{echo=FALSE}
 \usepackage{a4wide}

  \begin{document}

  \begin{figure}[htbp]
  \begin{center}
 <<>>=
 library(ggplot2)
 x=rnorm(100)
 qplot(x)

 @
 \caption{My Graph}
 \end{center}
  \end{figure}
\end{document}

残念ながら、グラフは作成されません。破損した .pdf および .eps ファイルしか取得できません。グラフィック以外は機能しているように見える素敵な.texファイルを取得しますが。次の基本的なコードを使用して作成します。

 Sweave("myfile.Rnw")

透明性とスウィーブ/ ggplot2の問題について議論している古い投稿をウェブ上で見つけましたが、何も役に立ちませんでした。リラックスしたパッケージも試しましたが、どちらも役に立ちませんでした. ところで、decumar パッケージに関するニュースはありますか?

4

3 に答える 3

19

qplot()グラフィック出力ではなく、オブジェクトを生成します。実行するとそうなるように見えるかもしれませんが、それは代入がなければ R が の出力を自動的に出力するからqplot()です。それを Sweave に統合するには、をラップprint()するか、 の出力を何かにqplot()割り当ててから でラップします。qplot()print()

...
<<fig = T, echo = F>>=
 library(ggplot2)
 x=rnorm(100)
 p <- qplot(x)
 print(p)
@
...

それはうまくいくはずです。ggplot2私はスウィーブ ドキュメントで常にグラフィックを使用しています。

于 2010-07-21T22:39:28.877 に答える
3

print()スウィーブで機能させるには、ラップする必要があります。

于 2010-07-22T18:29:20.873 に答える
1

実際、前の両方の答えは正しいですが、あなたの問題は別のものです。

コードブロック全体がページの左側にあることを確認する必要があります(関数の識別を除く)。繰り返しますが、理由はわかりませんが、これがSweaveに問題を引き起こします。

すべてのコード(およびコードチャンクのヘッダー/フッター)がページの左側にあることを確認した後(そしてprintステートメントを追加した後)、あなたの例は私のために機能します。

ちなみに、私は今日、sweaveドキュメントでコードの周りに環境を作成できることを学びました(これは私が気付いていなかったので、多くの時間を節約できます)。古き良きスタックオーバーフロー、質問に答えても何か新しいことを教えてくれます!

お役に立てれば。

于 2011-09-23T15:55:58.780 に答える