在 .Rnw 中包含 rgl 交互图(pdf 输出)
Include rgl interactive plot in .Rnw (pdf output)
问题描述
我想在从 .Rnw 文件编制的 .pdf 中包含一个交互式(旋转)rgl 3-d 散点图。我知道有一个包含 rgl
的钩子,但也许这仅用于 html 输出。我似乎无法包含情节以使其旋转。这是一个最小的例子。绘图出现,但有线而不是点,并且没有可用的旋转。
问题
- 是否可以在 pdf 中包含交互式 rgl?
- 如果是这样...我如何使用 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 支持方面的剩余差距是当务之急。
问题描述
我想在从 .Rnw 文件编制的 .pdf 中包含一个交互式(旋转)rgl 3-d 散点图。我知道有一个包含 rgl
的钩子,但也许这仅用于 html 输出。我似乎无法包含情节以使其旋转。这是一个最小的例子。绘图出现,但有线而不是点,并且没有可用的旋转。
问题
- 是否可以在 pdf 中包含交互式 rgl?
- 如果是这样...我如何使用 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 支持方面的剩余差距是当务之急。