我是R和LaTeX的新手,最近才发现如何使用R绘制标准时间序列图并将其另存为png图像。我担心的是将其另存为图像,然后将其嵌入到LaTeX中会缩放它并使它看起来丑陋。
有没有办法让R的plot()
函数输出矢量图形并将其嵌入LaTeX?我都是这两者的初学者,所以请保持谦虚:)代码片段非常受赞赏!
Answers:
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
并享受。\usepackage{graphicx}
输入了要运行的文档标头(在此处找到:tuxmann.blogspot.com/2006/06 /…);并且您错过了“ d”with=0.98
latex()
从Hmisc
地块有替代方案吗?也就是说,有些东西是\includegraphics
用环境,“捕获”等准备的。因此,请避免手动编写此代码。
postscript(file=myfile.ps,horizontal=FALSE)
我建议将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()
请注意,LaTeX宏中的反斜杠必须加倍,因为R会将单个反斜杠解释为转义字符。要在LaTeX文档中使用图,只需将其包括在内:
\include{path/to/myPlot.tex}
该pgfSweave
软件包包含Sweave
可以为您完成上述步骤的功能。确保您的文档包含\usepackage{tikz}
在LaTeX序言中的某处。
与之相比,tikz()
功能的优点 pdf()
是:
图形中标签和标题的字体始终与LaTeX文档中使用的字体匹配。这为您的文档提供了统一的外观。
您可以使用LaTeX排版机的全部功能来创建数学注释,并且可以在图形文本中使用任意LaTeX代码。
该tikz()
功能的缺点是:
它无法很好地缩放以处理包含许多组件的图。这些是诸如persp()
大型矩阵图之类的东西。图形元素的剪切数量可能会导致LaTeX缓慢爬行或耗尽内存。
该软件包当前标记为Beta。这意味着,如果作者发现令人信服的理由,则可能会更改软件包的接口或功能。
在结束本帖子时,我应声明我既是tikzDevice
和pgfSweave
包的作者,也可能对我的观点产生偏见。但是,我去年使用这两个软件包制作了几份学术报告,并对结果非常满意。
include
什么吗?收到此错误:Environment tikzpicture undefined
。
tikz
在LaTeX文档中使用该软件包。帖子已编辑。
install.packages()
R中的 命令-简单!@Sharpie,我将对如何使R CMD install tikzDevice
命令起作用感兴趣(我为此苦了一段时间,“缺少目标文件操作数”错误)
R CMD INSTALL
如果您使用了其他软件包管理器,则@Tom会引起误解-您必须将其指向您自己下载的文件。因此missing destination file
。要为您下载软件包,请install.packages
从R内部使用
您可能要考虑使用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}
要生成文档,您只需在R中调用R CMD Sweave file.Rnw
或运行即可Sweave(file)
。
这是我找不到的关于SO的问题的虚假记载。
但是: http ://r-forge.r-project.org/projects/tikzdevice/-r的tikz输出和 通过sweave的http://www.rforge.net/pgfSweave/ tikz代码。
使用tikz将使您的外观与文档的其余部分保持一致,此外还将使用乳胶对图形中的所有文本进行排版。
编辑将 LaTeX放入R图