1
我正在繪製使用plot3d
{rgl}的3d圖形,但它顯示在外部窗口框架上,因此,它不會在markdown html/pdf文件中捕獲。有沒有一種方法可以在RStudio的內部窗口中繪製圖形,以便在編譯筆記本時可以捕獲它?如何在RStudio的內部繪圖窗口中繪製plot3d
我正在繪製使用plot3d
{rgl}的3d圖形,但它顯示在外部窗口框架上,因此,它不會在markdown html/pdf文件中捕獲。有沒有一種方法可以在RStudio的內部窗口中繪製圖形,以便在編譯筆記本時可以捕獲它?如何在RStudio的內部繪圖窗口中繪製plot3d
第rgl
使用完全不同的繪圖系統。藝輝謝的knitr hook documentation介紹瞭如何使用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
)。您還可以將輸出包括爲interactive webgl element in an HTML document。如果使用knitr spin
選項(參見here),你應該能夠包括像
#+ my_rgl_plot, rgl=TRUE
線的情節設置塊選項之前。
非常感謝您的回覆。我嘗試過,但在一個循環中生成多個圖,它不起作用。 – Annie
你能給出一個可重複的例子嗎?您可能需要構建自己的代碼,以便每次運行'rgl.snapshot',然後將結果合併到輸出中(例如,對於筆記本格式,這可能有些複雜,顯式編寫'.rmd'文件可能更容易比在筆記本的限制內工作) –
非常感謝您的幫助,我找到了解決方案http://stackoverflow.com/questions/38664432/how-to-inlcude-multiple-plot3d-in-markdown-knitr-under-一個循環 – Annie