如何在RStudio的内部打印窗口中打印3D

如何在RStudio的内部打印窗口中打印3D,r,R,我正在使用plot3d{rgl}绘制一个三维图形,但它显示在一个外部窗口框架上,因此,标记html/pdf文件中没有捕获它。有没有一种方法可以在RStudio的内部plots窗口中绘制图形,以便在我编译笔记本时捕获它?否。rgl使用完全不同的打印系统。谢一辉解释了如何使用rgl.snapshot()函数在knitr文档中包含rgl输出: knit_hooks$set(rgl = function(before, options, envir) { if (!before) { ##

我正在使用
plot3d
{rgl}绘制一个三维图形,但它显示在一个外部窗口框架上,因此,标记html/pdf文件中没有捕获它。有没有一种方法可以在RStudio的内部plots窗口中绘制图形,以便在我编译笔记本时捕获它?

否。
rgl
使用完全不同的打印系统。谢一辉解释了如何使用
rgl.snapshot()
函数在
knitr
文档中包含
rgl
输出:

knit_hooks$set(rgl = function(before, options, envir) {
  if (!before) {
    ## after a chunk has been evaluated
    if (rgl.cur() == 0) return()  # no active device
    name = paste(options$fig.path, options$label, sep = '')
    rgl.snapshot(paste(name, '.png', sep = ''), fmt = 'png')
    return(paste('\\includegraphics{', name, '}\n', sep = ''))
  }
})
(然后在区块选项中使用
rgl=TRUE
)。您还可以将输出包含为。如果使用
knitr-spin
选项(请参阅),则应该能够包括一条类似

#+ my_rgl_plot, rgl=TRUE

在绘图之前,请设置块选项。

非常感谢您的回复。我试过了,但是在一个循环中,如果生成多个绘图,它就不起作用了。你能给出一个可重复的例子吗?您可能需要构造自己的代码,以便每次运行
rgl.snapshot
,然后将结果合并到输出中(即,对于笔记本格式来说,这可能有点太复杂,显式编写
。rmd
文件可能比在笔记本的限制范围内工作更容易)感谢您的帮助,我找到了解决办法