Hel*_*iro 67 graphics latex r vector-graphics
我是R和LaTeX的新手,刚刚发现如何使用R绘制标准时间序列图并将其保存为png图像.我担心的是将它保存为图像然后将其嵌入到LaTeX中将会扩展它并使其看起来很难看.
有没有办法让R的plot()函数输出一个矢量图形并将其嵌入到LaTeX中?我是两个人的初学者所以请温柔:)代码片段非常感谢!
Sha*_*pie 59
我建议使用tikzDevice包来生成包含在LaTeX文档中的输出:
http://cran.r-project.org/web/packages/tikzDevice/index.html
tikzDevice将R中生成的图形转换为可由LaTeX包解释的代码tikz.TikZ为LaTeX提供了一个非常好的矢量绘图系统.TikZ输出的一些很好的例子位于:
的tikzDevice可以使用像任何其他R图形设备:
require( tikzDevice )
tikz( 'myPlot.tex' )
plot( 1, 1, main = '\\LaTex\\ is $\\int e^{xy}$' )
dev.off()
Run Code Online (Sandbox Code Playgroud)
请注意,LaTeX宏中的反斜杠必须加倍,因为R将单个反斜杠解释为转义字符.要在LaTeX文档中使用绘图,只需包含它:
\include{path/to/myPlot.tex}
Run Code Online (Sandbox Code Playgroud)
该pgfSweave软件包包含Sweave可以为您处理上述步骤的功能.确保您的文档包含\usepackage{tikz}在LaTeX前言中的某个位置.
tikz()功能的优点 pdf()是:
图中的标签和标题字体始终与LaTeX文档中使用的字体相匹配.这为您的文档提供了统一的外观.
您可以使用LaTeX排版机的所有功能来创建数学注释,并且可以在图形文本中使用任意LaTeX代码.
该tikz()功能的缺点是:
它不能很好地处理具有大量组件的图.这些是诸如persp()大型matricies的情节之类的东西.图形元素的剪切数可能导致LaTeX慢速爬行或内存不足.
该软件包目前被标记为测试版.这意味着如果作者找到令人信服的理由,包的界面或功能可能会发生变化.
我应该结束这篇文章,声称我是tikzDevice和pgfSweave包的作者,所以我的意见可能有偏见.但是,我在去年使用这两个软件包编写了几份学术报告,对结果非常满意.
Dir*_*tel 56
Shane是现货,你确实想要Sweave.最终.
作为一个新手,你最好分开任务.为此,请执行以下操作:
pdf("figures/myfile.pdf", height=6, width=6).plot(1:10, type='l', main='boring') - 并记住,格子和ggplot需要一个明确的print周围plot.dev.off() 完成文件.usepackage{graphicx}在文档标题中使用,\includegraphics[width=0.98\textwidth]{figures/myfile} 用于包含之前创建的图形,并注意文件扩展名是可选的.pdflatex过去享受.Sha*_*ane 22
您可能想要考虑使用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}
Run Code Online (Sandbox Code Playgroud)
要构建文档,您只需在R中调用R CMD Sweave file.Rnw或运行即可Sweave(file).