gpt4 book ai didi

r-markdown - RMarkdown : How to embed an 3D plot?

转载 作者:行者123 更新时间:2023-12-04 14:11:58 25 4
gpt4 key购买 nike

如何将 3D 绘图 (rgl) 嵌入到通过 knitr 创建的 html 中?

有几篇较旧的帖子正在寻找类似的结果。但是,当我运行我发现的所有示例代码时。 rgl-plot 不会嵌入到使用 knitr 创建的 html 中,而是在“编织”时出现在外部窗口中,并在 html 页面出现时消失。

我正在寻找一种将 3D 绘图集成到生成的 html 中的方法。我不介意它是保持交互还是静态。

以下示例摘自 R Markdown Cookbook:https://bookdown.org/yihui/rmarkdown-cookbook/rgl-3d.html


title: Embed 3D plots with rgl
output: html_document
---

Set up a hook to save **rgl** plots:

```{r, setup}
library(rgl)
knitr::knit_hooks$set(webgl = hook_webgl)
```

See if it works for this 3D plot after we enable the hook
via the chunk option `webgl = TRUE`:

```{r, test-rgl, webgl=TRUE}
x <- sort(rnorm(1000))
y <- rnorm(1000)
z <- rnorm(1000) + atan2(x,y)
plot3d(x, y, z, col = rainbow(1000))
```

最佳答案

您所做的应该可行,但这不是在文档中嵌入 rgl 图形的最佳方式。

最简单的方法是调用 rglwidget() 您想要插入当前绘图的位置。您还可以使用 options(rgl.useNULL=TRUE) 来抑制 rgl 在绘图时创建的单独窗口。例如,

---
title: Embed 3D plots with rgl
output: html_document
---

No need for a hook with `rgl` version >= 0.96.0, just call `rglwidget()`.

```{r, setup}
options(rgl.useNULL = TRUE) # Suppress the separate window.
library(rgl)
```

See it work for this 3D plot without the hook:

```{r}
x <- sort(rnorm(1000))
y <- rnorm(1000)
z <- rnorm(1000) + atan2(x,y)
plot3d(x, y, z, col = rainbow(1000))
rglwidget()
```

版本 0.102.21 或更新的 rgl 使它变得更加简单:rgl 绘图可以按照与基本图形绘图几乎相同的规则显示,只需一个在开头调用 rgl::setupKnitr(autoprint = TRUE)

我说过你尝试过的应该有效,它对我有效。为什么不适合你?很难猜出哪里出了问题,但最有可能的可能是您的网络浏览器没有启用 WebGL,或者您使用的是某些旧版本的 R 或 rgl,其中存在错误它。一个糟糕的浏览器的简单解决方法是切换到静态图;您可以通过将 hook = hook_webgl 更改为 hook = hook_rgl 来用您的代码做到这一点。

关于r-markdown - RMarkdown : How to embed an 3D plot?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63595786/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com