RGL小部件未在Shiny app中显示

时间:2018-03-22 09:11:38

标签: r shiny widget rgl

我一直在努力构建一个包含RGL小部件的闪亮应用程序几个小时。 我想让一个sliderInput控制一个绘图的agecontrol演变,并且不显示小部件。

请在此处查找我目前正在处理的代码。

library(shiny)
library(rgl)


ui <- (fluidPage(
sliderInput("sld", label = "Slider", min = 0., max = 4*pi, value = 0., step = .1),
playwidgetOutput("control"),
 rglwidgetOutput("wdg")
))

server <- function(input, output, session) {
options(rgl.useNULL = TRUE)
save <- options(rgl.inShiny = TRUE)
on.exit(options(save))

# create data for widget
theta <- seq(0, 4*pi, len=100)
xyz <- cbind(sin(theta), cos(theta), sin(theta/2))
open3d()
lineid <- plot3d(xyz, type="l", alpha = 0, lwd = 5, col = "blue")["data"]
scene <- scene3d()
rgl.close()

output$wdg <- renderRglwidget({
rglwidget(scene, controllers = c("control"))
})
control <- ageControl(births = theta,
                    ages = c(-4*pi, -4*pi, 1-4*pi, 0, 0, 1),
                    objids = lineid,
                    alpha = c(0, 1, 0, 0, 1, 0))

output$control <- renderPlaywidget({
playwidget("wgd",control,
            respondTo = "sld")
})}
if (interactive()) shinyApp(ui = ui, server = server)

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

由于您使用闪亮的sliderInput来控制事物,因此不会显示playwidget。这是正常的,并记录在案。

然而,还有一个问题:当我运行您的应用时,滑块似乎无法控制显示屏。这看起来像rgl中的错误,而不是代码中的错误。不知道该建议...

编辑添加:不,不是rgl错误。在一个位置,您将rgl小部件命名为wgd,将另一个命名为wdg。修复错字,你的代码可以运行。