把R图变成LaTeX?

我是R和LaTeX的新手,刚刚find了如何使用R绘制标准时间序列图并将其保存为PNG图像。 我担心的是,将它保存为图像,然后将其embedded到LaTeX中,将会使其看起来很丑。

有没有办法使R的plot()函数输出vectorgraphics,并将其embedded到LaTeX中? 我是一个总的初学者,所以请温柔:)代码片断高度赞赏!

谢恩现身,你确实想要Sweave。 最终。

作为一个新手,你可能最好分离任务。 为此,请执行以下操作:

  1. 打开一个设备: pdf("figures/myfile.pdf", height=6, width=6)
  2. 绘制你的R对象: plot(1:10, type='l', main='boring') : plot(1:10, type='l', main='boring') – 记住lattice和ggplot需要一个明确的print
  3. 重要的是:closures你的设备: dev.off()来完成文件。
  4. 可选:检查PDF文件。
  5. 在LaTeX中,在文档头中使用usepackage{graphicx} ,使用
    \includegraphics[width=0.98\textwidth]{figures/myfile}包含之前创build的graphics,并注意文件扩展名是可选的。
  6. 通过pdflatex运行,享受。

我会推荐使用tikzDevice包来生成包含在LaTeX文档中的输出:

http://cran.r-project.org/web/packages/tikzDevice/index.html

tikzDevice将R中生成的graphics转换为可由LaTeX包tikz解释的代码。 TikZ为LaTeX提供了一个非常好的vector绘图系统。 TikZ输出的一些很好的例子位于:

http://www.texample.net/

tikzDevice可以像其他任何Rgraphics设备一样使用:

 require( tikzDevice ) tikz( 'myPlot.tex' ) plot( 1, 1, main = '\\LaTex\\ is $\\int e^{xy}$' ) dev.off() 

请注意,由于R将单个反斜杠解释为转义字符,因此LaTeXmacros中的反斜杠必须加倍。 要在LaTeX文档中使用该图,只需包含它:

 \include{path/to/myPlot.tex} 

pgfSweave软件包包含Sweavefunction,可以为您处理上述步骤。 确保您的文档在LaTeX序言中的某处包含\usepackage{tikz}

http://cran.r-project.org/

pdf()相比, tikz()函数的优点是:

  • 数字中的标签和标题字体总是与LaTeX文档中使用的字体相匹配。 这为您的文档提供了一个统一的外观。

  • 您可以使用LaTeX排版机的所有function来创buildmath注释,并且可以在graphics文本中使用任意的LaTeX代码。

tikz()函数的缺点是:

  • 它不能很好地处理大量组件的情节。 这些都是诸如persp()大块的persp()情节。 graphics元素的剪切数量会导致LaTeX缓慢爬行或耗尽内存。

  • 该软件包目前被标记为testing版。 这意味着,如果作者find一个令人信服的理由,那么包的界面或function可能会发生变化。

我应该结束这篇文章,否认我是tikzDevicepgfSweave软件包的作者,所以我的意见可能有偏差。 不过,在过去的一年里,我已经使用这两个软件包编制了几份学术报告,并对结果非常满意。

你可能要考虑使用Sweave 。 在Sweave网站(和其他地方)有很多很棒的文档。 它具有非常简单的语法:只需将您的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} 

要构build文档,只需调用R CMD Sweave file.Rnw Sweave(file) R CMD Sweave file.Rnw或从R中运行Sweave(file)

这是我无法find的一个关于SO的问题。

但是: http ://r-forge.r-project.org/projects/tikzdevice/ – 通过sweave从r和http://www.rforge.net/pgfSweave/ tikz代码输出tikz。

使用tikz会给你一个与你的文档的其余部分保持一致的外观,另外它将使用latex来排版graphics中的所有文本。

编辑将 LaTeX变成R图