Graphics 把R图变成乳胶?
我是R和LaTeX的新手,最近才发现如何使用R绘制标准时间序列图并将其保存为png图像。我担心的是,将其保存为图像,然后将其嵌入乳胶中会使其缩放并使其看起来难看Graphics 把R图变成乳胶?,graphics,r,latex,vector-graphics,Graphics,R,Latex,Vector Graphics,我是R和LaTeX的新手,最近才发现如何使用R绘制标准时间序列图并将其保存为png图像。我担心的是,将其保存为图像,然后将其嵌入乳胶中会使其缩放并使其看起来难看 有没有办法让R的plot()函数输出一个矢量图形并嵌入到LaTeX中?我完全是这两方面的初学者,所以请温柔:)非常感谢代码片段 >你可能想考虑使用。在Swave网站(和其他地方)上有很多关于这方面的优秀文档。它的语法非常简单:只需将R代码放在=和@之间 下面是一个简单的例子: \documentclass[a4paper]{articl
有没有办法让R的
plot()
函数输出一个矢量图形并嵌入到LaTeX中?我完全是这两方面的初学者,所以请温柔:)非常感谢代码片段 >你可能想考虑使用。在Swave网站(和其他地方)上有很多关于这方面的优秀文档。它的语法非常简单:只需将R代码放在=
和@
之间
下面是一个简单的例子:
\documentclass[a4paper]{article}
\标题{示例1}
\作者{Friedrich Leisch}
\开始{document}
\maketitle
在本例中,我们嵌入了
\texttt{kruskal.test}帮助页插入\LaTeX{}文档:
=
数据(空气质量)
图书馆(ctest)
kruskal.试验(臭氧~月份,数据=空气质量)
@
这表明臭氧层的位置参数
每个月的分布差异很大。最后我们
包括数据的箱线图:
\开始{center}
=
箱线图(臭氧~月份,数据=空气质量)
@
\结束{中心}
\结束{document}
要构建文档,您只需调用
R CMD swave file.Rnw
或从R中运行swave(file)
。Shane在现场,您确实需要swave。最终
作为一个新手,你最好把任务分开。为此,请执行以下操作:
pdf(“figures/myfile.pdf”,高度=6,宽度=6)
plot(1:10,type='l',main='boring')
——请记住,lattice和ggplot需要在plot
周围显式打印
dev.off()
以完成文件usepackage{graphicx}
在文档头中,使用\includegraphics[width=0.98\textwidth]{figures/myfile}
以包括先前创建的图形,并注意文件扩展名是可选的pdflatex
运行此程序,然后享受这是一个我找不到的问题 但是: --来自r的tikz输出 和 tikz代码通过Swave 使用tikz将使您的外观与文档的其余部分保持一致,并且它将使用latex来排版图形中的所有文本 编辑
我建议使用
tikzDevice
软件包生成输出,以包含在LaTeX文档中:
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
软件包包含可为您处理上述步骤的swave
功能。确保您的文档在序言中的某个位置包含\usepackage{tikz}
与pdf()
相比,tikz()函数的优点是:
- 图形中标签和标题的字体始终与LaTeX文档中使用的字体匹配。这为文档提供了统一的外观
- 您拥有LaTeX排版机用于创建数学注释的所有功能,并且可以在图形文本中使用任意LaTeX代码
tikz()
函数的缺点是:
- 它不能很好地缩放以处理包含大量组件的绘图。这些是大型矩阵的绘图。图形元素的剪切数量可能会导致LaTeX缓慢爬行或内存不足
- 该软件包当前标记为beta版。这意味着,如果作者发现有令人信服的理由这样做,包的接口或功能可能会发生更改
在结束这篇文章之前,我应该声明我是tikzDevice
和pgfSweave
软件包的作者,所以我的观点可能有偏见。然而,在过去的一年中,我已经使用这两个软件包制作了几份学术报告,并且对结果非常满意。我还应该提到,像德克那样将任务分离对于非常大的文档来说是有益的:每次都要从头开始重建整个文档可能会很痛苦,更不用说调试一个大的Swave文档的痛苦了。不过,缓存技巧和软件包是有很多的。但是,值得注意的是,Swave的力量在复杂性和不透明性方面付出了一些代价。委婉地说:)谢谢!你可以用我遇到的一些事情来更新你的答案,这样对其他像我这样的新手来说就更容易了:你已经在文档头中放置了\usepackage{graphicx}
,以便运行它(在这里找到它:);您在上缺少了一个'd',且=0.98
是否有Hmisc
中的latex()
用于绘图的替代方案?Ie使用“捕获”等环境准备\includegraphics
,以避免手动编写此代码。在pdf中混合对我不起作用,因为我需要postscipt处理(pdf给了我一个边界框错误)。这对其他人来说可能也是个问题。解决方案很简单——让R创建.ps而不是.pdf:postscript(file=myfile.ps,horizontal=FALSE)
这个问题与这个问题相反:这里的OP是aski