Rプロットをラテックスに入れる?
-
19-09-2019 - |
質問
私はRとラテックスの両方の初心者であり、最近、Rを使用して標準の時系列グラフをプロットし、PNG画像として保存する方法を見つけました。私が心配しているのは、それを画像として保存し、それをラテックスに埋め込むことで、それをスケーリングして醜く見えるようにするということです。
Rを作る方法はありますか plot()
関数出力ベクトルグラフィックを出力し、それをラテックスに埋め込みましたか?私は両方で完全な初心者なので、優しくしてください:)コードスニペットは非常に高く評価されています!
解決
シェーンはスポットオンです、あなたはスウィーブが欲しいです。最終的。
初心者として、タスクを分離する方が良いかもしれません。そのために、これを行います:
- デバイスを開く:
pdf("figures/myfile.pdf", height=6, width=6)
. - Rオブジェクトをプロットします:
plot(1:10, type='l', main='boring')
- そして、格子とggplotが明示的に必要であることを忘れないでくださいprint
その周りplot
. - 重要:デバイスを閉じる:
dev.off()
ファイルを完成させます。 - オプション:PDFファイルを検査します。
- ラテックスでは、使用します
usepackage{graphicx}
ドキュメントヘッダーで、使用します
\includegraphics[width=0.98\textwidth]{figures/myfile}
以前に作成された図を含めるには、ファイル拡張子がオプションであることに注意してください。 - これを実行します
pdflatex
楽しんでください。
他のヒント
お勧めします tikzDevice
ラテックスドキュメントに含めるための出力を生成するためのパッケージ:
http://cran.r-project.org/web/packages/tikzdevice/index.html
Tikzdeviceは、Rで生成されたグラフィックをコードに変換します。これはLaTexパッケージで解釈できます tikz
. 。 Tikzは、ラテックス用の非常に優れたベクトル描画システムを提供します。 Tikz出力のいくつかの良い例は、次のようにあります。
tikzDevice
他のRグラフィックデバイスと同様に使用できます。
require( tikzDevice )
tikz( 'myPlot.tex' )
plot( 1, 1, main = '\\LaTex\\ is $\\int e^{xy}$' )
dev.off()
Rラテックスマクロのバックスラッシュは、Rがエスケープキャラクターとして単一のバックスラッシュを解釈するため、2倍にする必要があることに注意してください。ラテックスドキュメントでプロットを使用するには、単に含めるだけです。
\include{path/to/myPlot.tex}
pgfSweave
パッケージには含まれています Sweave
上記のステップを処理できる機能。ドキュメントが含まれていることを確認してください \usepackage{tikz}
ラテックス前文のどこか。
の利点 tikz()
と比較して関数 pdf()
それは:
フィギュアのラベルとキャプションのフォントは、常にLaTexドキュメントで使用されるフォントと一致します。これにより、ドキュメントに統一された外観が提供されます。
数学的注釈を作成するためにLaTex TypeStterのすべてのパワーがあり、図テキストで任意のラテックスコードを使用できます。
の短所 tikz()
機能は次のとおりです。
多くのコンポーネントでプロットを処理することは十分にスケーリングしません。これらは次のようなものです
persp()
大きなマトリックのプロット。グラフィック要素のせん断数により、ラテックスがクロールが遅くなったり、メモリが不足したりする可能性があります。パッケージは現在、ベータとしてフラグが付けられています。これは、著者が説得力のある理由を見つけた場合、パッケージのインターフェイスまたは機能が変更される可能性があることを意味します。
私は両方の著者であることを否認することにより、この投稿を終了する必要があります tikzDevice
と pgfSweave
私の意見が偏っているようにパッケージ。しかし、私は昨年、両方のパッケージを使用していくつかの学術レポートを作成しましたが、結果に非常に満足しています。
使用を検討することをお勧めします スイブ. 。これには、Sweave Webサイト(および他の場所)に多くの素晴らしいドキュメントがあります。非常にシンプルな構文があります:Rコードを間に配置するだけです <<>>=
と @
.
これが最終的には簡単な例です このように見えます:
\documentclass[a4paper]{article}
\title{Sweave Example 1}
\author{Friedrich Leisch}
\begin{document}
\maketitle
In this example we embed parts of the examples from the
\texttt{kruskal.test} help page into a \LaTeX{} document:
<<>>=
data(airquality)
library(ctest)
kruskal.test(Ozone ~ Month, data = airquality)
@
which shows that the location parameter of the Ozone
distribution varies significantly from month to month. Finally we
include a boxplot of the data:
\begin{center}
<<fig=TRUE,echo=FALSE>>=
boxplot(Ozone ~ Month, data = airquality)
@
\end{center}
\end{document}
ドキュメントを作成するには、電話するだけです R CMD Sweave file.Rnw
または実行します Sweave(file)
内部からRから
これは私が見つけることができないように、質問のだまされています。
しかし:http://r-forge.r-project.org/projects/tikzdevice/ -Rおよびhttp://www.rforge.net/pgfsweave/ Sweave経由のTikzコード。
Tikzを使用すると、ドキュメントの残りの部分と一致する見た目が得られ、さらにLaTexを使用してグラフ内のすべてのテキストを入力します。