У меня есть следующий файл Rmd:
---
output: bookdown::gitbook
---
```{r include=FALSE}
rgl::setupKnitr()
```
```{r testing1,webgl=TRUE}
with(attitude,
car::scatter3d(x = rating, z = complaints, y = learning)
)
```
```{r testing2,webgl=TRUE}
with(attitude,
car::scatter3d(x = rating, z = complaints, y = learning)
)
```
Когда я сшиваю этот файл, он создает и HTML файл, содержащий две идентичные интерактивные трехмерные диаграммы рассеяния. Обе диаграммы рассеяния выглядят так, как должны, но диаграмма рассеяния секунда не вращается должным образом. Он не будет правильно вращаться по горизонтали по глубине (например, вокруг вертикальной оси).
Если это поможет, вы можете найти результат HTML вязания здесь: https://www.dropbox.com/s/v3usmtes7n54t6q/Untitled.html.zip?dl=0
Я сделал все следующее, ни одно из которых не устранило проблему:
- Обновил все пакеты с помощью
update.packages()
. - Установил версию для разработки
bookdown
. - Установлена разрабатываемая версия
knitr
. - Пробовали решение здесь (не сработало): интерактивные 3D-графики в файле уценки - больше не работают?
Я заметил следующее:
- Если я изменю
output
на html_document
, у меня не будет проблемы (я отлаживаю проблему в bookdown::gitbook
, так что эти знания мне не помогают). - В консоли ошибок Firefox (77.0.1, 64-бит) javascript есть ошибка:
TypeError: li[0] is undefined / plugin-bookdown.js:152:43
(что, похоже, имеет какое-то отношение к оглавлению и прокрутке?)
Вот результат работы sessionInfo (): * 1 042 *
> sessionInfo()
R version 4.0.0 (2020-04-24)
Platform: x86_64-apple-darwin17.0 (64-bit)
Running under: macOS Catalina 10.15.5
Matrix products: default
BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/4.0/Resources/lib/libRlapack.dylib
locale:
[1] en_GB.UTF-8/en_GB.UTF-8/en_GB.UTF-8/C/en_GB.UTF-8/en_GB.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] bookdown_0.19.4 fansi_0.4.1 digest_0.6.25 crayon_1.3.4
[5] assertthat_0.2.1 evaluate_0.14 rlang_0.4.6 cli_2.0.2
[9] rstudioapi_0.11 rmarkdown_2.3 tools_4.0.0 glue_1.4.1
[13] xfun_0.14 yaml_2.2.1 rsconnect_0.8.16 compiler_4.0.0
[17] htmltools_0.5.0 knitr_1.28.7
Кроме того, вот версии некоторых других соответствующих пакетов:
> installed.packages()[c("rgl","mgcv","car"),"Version"]
rgl mgcv car
"0.100.54" "1.8-31" "3.0-8"
Изменить, чтобы добавить больше деталей
У меня есть та же проблема при использовании rgl::persp3d
, поэтому он не указывает c на car::scatter3d
. HTML из файла Rmd ниже использует только rgl
, но демонстрирует такое же поведение.
---
output: bookdown::gitbook
---
```{r include=FALSE}
rgl::setupKnitr()
x <- seq(-10, 10, length = 30)
y <- x
f <- function(x, y) { r <- sqrt(x^2 + y^2); 10 * sin(r)/r }
z <- outer(x, y, f)
z[is.na(z)] <- 1
```
```{r testing1,webgl=TRUE}
rgl::persp3d(x, y, z, aspect = c(1, 1, 0.5), col = "lightblue",
xlab = "X", ylab = "Y", zlab = "Sinc( r )",
polygon_offset = 1)
```
```{r testing2,webgl=TRUE}
rgl::persp3d(x, y, z, aspect = c(1, 1, 0.5), col = "lightblue",
xlab = "X", ylab = "Y", zlab = "Sinc( r )",
polygon_offset = 1)
```