次のコード スニペットに問題があります。
\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:
そのため、最初に推奨されたのは、pdf ではなく EPS 形式を使用することでした。これにより、いくつかの結果が得られましたが、私が望んでいたものではありませんでした。私は以下を実行しました:
\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" を開いても、軸ラベルは Figure に表示されず、軸はプロット内にあります。scatterplot3d が図を出力する方法は、 \includegraphics が図を検索する方法と一致しないようです...
そのため、軸ラベルを含むこれに対する解決策をまだ探しています。