如何在LaTeX文档中包含复杂的R图?

Rgu*_*guy 12 pdf latex r sweave

我遇到以下代码片段的问题:

\documentclass{article}
\usepackage{graphicx}
\begin{document}
\includegraphics{myscatterplot.pdf}
\end{document}
Run Code Online (Sandbox Code Playgroud)

其中"myscatterplot.pdf"由R中的以下代码生成:

library(scatterplot3d)
pdf("myscatterplot.pdf")
scatterplot3d(rnorm(100), rnorm(100), 1:100, highlight.3d = TRUE)
dev.off()
Run Code Online (Sandbox Code Playgroud)

问题是,使用texworks(pdfLatex + makeindex + bibtex)进行编译时生成的LaTeX文档具有图形轴,但绘图或轴标签中没有任何点(在这种情况下,它只是3d轴本身).R或LaTeX不输出错误或警告消息.我在用:

  • Windows 7上的R 2.12.1,
  • MiKTeX 2.8,
  • TEXworks的
  • Adobe Reader 9(不确定这是否相关......)

我已经能够使用\ includegraphics命令包含该图的png版本,并用adobe打开"myscatterplot.pdf",在我的文档中显示我想要的图形.

我曾尝试使用tikz软件包作为一种解决方法,但似乎scatterplot3d生成了太多信息,由于内存大小,结果图不能包含在乳胶文档中(错误(我的实际情节将有10000 +点! ).

我怀疑问题是由于".pdf"文件中的字体引起的,但我试图改变pdf字体使用

pdf("changefont.pdf")
par(family = "Helvetica")
scatterplot3d(rnorm(100), rnorm(100), 1:100, highlight.3d = TRUE)
dev.off()
Run Code Online (Sandbox Code Playgroud)

使用\ includegraphics(changefont.pdf)时得到的结果完全相同.

我正在考虑的另一个可能的问题是,scatterplot3d输出实际上可能是多个图像,而\ includegraphics只是从pdf文件中获取第一个图形(轴).在这种情况下,我仍然不确定如何解决它.

我真的很感激一种解决方法,因为我最终希望用Sweave完成所有这些工作,这让我对包装的美妙输出感到痛苦!

提前感谢您的回复.

编辑1:

因此,第一个建议是使用EPS格式而不是pdf.这产生了一些结果,但不是我想要的结果.我运行了以下内容:

\documentclass{article}
\usepackage{graphicx,epstopdf}
\begin{document}
\begin{figure}
\includegraphics[angle = 270, width= 6in, keepaspectratio=true]{change.eps}
\end{figure}
\end{document}
Run Code Online (Sandbox Code Playgroud)

我使用生成了"change.eps"

postscript("change.eps")
scatterplot3d(rnorm(100), rnorm(100), 1:100, highlight.3d = TRUE)
dev.off()
Run Code Online (Sandbox Code Playgroud)

确实产生了一个改进(尽管奇怪的是,它在乳胶输出中顺时针旋转了90度!),现在我的乳胶输出中的散点图中有轴和点!但是,即使我使用ghostview打开了"change.eps",轴标签仍然没有出现在图中!似乎scatterplot3d输出数字的方式与\ includegraphics搜索数字的方式不一致......

所以,我仍然在寻找一个包含轴标签的解决方案.

Kar*_* W. 5

查看使用您列出的命令生成的myscatterplot.pdf,轴和标签就在那里.但是,pdf相当大(7英寸x 7英寸).

如果你使用pdf()的重量/身高参数会有帮助吗?

pdf("myscatterplot.pdf", height=3.5, width=3.5)
Run Code Online (Sandbox Code Playgroud)

  • @Rguy - 我认为Karsten的提示将解决你的问题.我和WinT一起使用MikTex2.9.TexWorks pdf查看器不显示这些要点.Acrobat Reader显示点,但默认绘图大小太大,右轴标签被截断.更改比例使其在Acrobat Reader中正确显示.我不认为它会在TexWorks pdf查看器中正确显示. (3认同)