我遇到以下代码片段的问题:
\documentclass{article}
\usepackage{graphicx}
\begin{document}
\includegraphics{myscatterplot.pdf}
\end{document}
其中“myscatterplot.pdf”由 R 中的以下代码生成:
library(scatterplot3d)
pdf("myscatterplot.pdf")
scatterplot3d(rnorm(100), rnorm(100), 1:100, highlight.3d = TRUE)
dev.off()
问题是使用 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()
使用 \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}
我使用生成“change.eps”
postscript("change.eps")
scatterplot3d(rnorm(100), rnorm(100), 1:100, highlight.3d = TRUE)
dev.off()
这确实产生了改进(尽管奇怪的是,它在乳胶输出中将图顺时针旋转了 90 度!),我现在在我的乳胶输出中有了散点图中的轴和点!但是,轴标签仍然不在图中,即使我已经使用 ghostview 打开了“change.eps”,并且轴在图中!scatterplot3d 输出数字的方式似乎与 \includegraphics 搜索数字的方式不一致......
因此,我仍在寻找包含轴标签的解决方案。