在使用rgl包在shinyR上绘制3D图片时,我遇到了一些问题。我的代码在本地Rstudio上运行时没有错误或问题。这个3D图确实和我预期的一样显示出来了。但是,每当我通过rsconnect将它发布到shinyapps.io时,3D图形就不会出现在网站上。同时,没有出现错误。这让我很困惑。我在网上寻找解决方案,并上传一个简单的例子进行测试。以下是代码:
library(shiny)
library(rgl)
library(rglwidget)
options(rgl.useNULL=TRUE)
open3d(useNULL = TRUE)
ids <- plot3d(rnorm(100), rnorm(100), rnorm(100))[1]
scene <- scene3d()
rgl.close()
ui <- (fluidPage(
checkboxInput("chk", label = "Display", value = FALSE),
rglwidgetOutput("wdg")
))
server <- function(input, output, session) {
options(rgl.useNULL = TRUE)
save <- options(rgl.inShiny = TRUE)
on.exit(options(save))
output$wdg <- renderRglwidget({
rglwidget(scene)
})
}
if (interactive())
shinyApp(ui = ui, server = server)最后,有错误消息:
rgl.init(initValue,onlyNULL)中的警告: RGL:无法打开X11 displayWarning:'rgl_init‘失败,rglwidget包中的rgl.useNULL = TRUEThe函数已被移动到rgl.Attaching包中:’rglwidget‘以下对象被隐藏在’package: rgl‘:playwidget,rglwidgetError in value3L : app.R没有返回shiny.appobj object.Calls: local .tryCatch -> tryCatchList -> tryCatchOne ->
正如您所看到的,错误消息提到了“X11”,我在谷歌上发现所有这些X11问题都与ubanto或mac环境有关(我的是win10 )。因此,我找不到有用的答案。我也尝试了功能()函数,但是结果只是说我的X11是假的。我不知道哪一部分出了问题,所以我列出了我所有的信息。
非常感谢任何人能帮助或提供更多的信息。
发布于 2018-04-29 12:15:11
您不应该使用rglwidget包;它已经过时了。
关于X11的警告来了,因为您试图在闪亮的服务器上设置一个本地窗口。要避免这样做,请在options(rgl.useNULL = TRUE)之前使用library(rgl)。如果这样做,在open3d调用中就没有必要了。
https://stackoverflow.com/questions/48658412
复制相似问题