如何在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
文件可能比在笔记本的限制范围内工作更容易)感谢您的帮助,我找到了解决办法