RGL 小部件未显示在 Shiny 应用程序中
RGL widget not displayed in Shiny app
几个小时以来,我一直在努力构建一个包含 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)
预先感谢您的帮助。
由于您使用闪亮 sliderInput
来控制事物,因此 playwidget
将不会显示。这是正常的,并记录在案。
但是,仍然存在一个问题:当我 运行 您的应用程序时,滑块似乎没有控制显示。这看起来像是 rgl
中的错误,而不是您的代码中的错误。不知道该建议什么...
编辑添加:不,不是 rgl
错误。在一处将 rgl 小部件命名为 wgd
,在另一处将其命名为 wdg
。修正该拼写错误,您的代码就可以工作了。
几个小时以来,我一直在努力构建一个包含 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)
预先感谢您的帮助。
由于您使用闪亮 sliderInput
来控制事物,因此 playwidget
将不会显示。这是正常的,并记录在案。
但是,仍然存在一个问题:当我 运行 您的应用程序时,滑块似乎没有控制显示。这看起来像是 rgl
中的错误,而不是您的代码中的错误。不知道该建议什么...
编辑添加:不,不是 rgl
错误。在一处将 rgl 小部件命名为 wgd
,在另一处将其命名为 wdg
。修正该拼写错误,您的代码就可以工作了。