在 .Rnw 中包含 rgl 交互图(pdf 输出)

Include rgl interactive plot in .Rnw (pdf output)

问题描述

我想在从 .Rnw 文件编制的 .pdf 中包含一个交互式(旋转)rgl 3-d 散点图。我知道有一个包含 rgl 的钩子,但也许这仅用于 html 输出。我似乎无法包含情节以使其旋转。这是一个最小的例子。绘图出现,但有线而不是点,并且没有可用的旋转。

问题

  1. 是否可以在 pdf 中包含交互式 rgl?
  2. 如果是这样...我如何使用 knitr 执行此操作?;我做错了什么?

MWE

\documentclass{article}

\begin{document}

<<setup, include=FALSE, cache=FALSE>>=
library(knitr)
library(rgl) 
knit_hooks$set(rgl = hook_rgl)
@

<<fancy-rgl, rgl=TRUE>>=
x <- sort(rnorm(1000))
y <- rnorm(1000)
z <- rnorm(1000) + atan2(x,y)
# open3d()
plot3d(x, y, z, col = 'black')
@


\end{document}

我在 pdf 中看到的内容:

这是可能的,但只是勉强。您需要安装 Asymptote,并使用 rgl::writeASY() 为其编写程序。然后将该程序包含在您的文档中,运行 LaTeX,然后是 Asymptote,然后再次是 LaTeX。

此处有在 LaTeX 中包含 Asymptote 的示例:http://asymptote.sourceforge.net/doc/LaTeX-usage.html#LaTeX-usage

结果有点令人失望。

我的建议是放弃 PDF。 HTML5 是一个更好的输出目标; rgl 在生成网页输出方面做得很好(使用 rglwidget())。确实不太可能投入任何努力来改进 PDF 输出,而修复 HTML 支持方面的剩余差距是当务之急。