【发布时间】:2017-10-21 08:49:35
【问题描述】:
我正在寻找在我闪亮的应用程序中实现 3D 交互式绘图,到目前为止我一直在使用 plotly。但是,plotly 有一个主要缺点,渲染时非常慢。 我已经完成了检查,尽管涉及大量数据集,但更新后的 outplot$plot
因此,我希望使用一个名为 car 的包,因为它有很多选项,我特别想要一些其他包中没有的选项。关于汽车包装的信息在这里:http://www.sthda.com/english/wiki/amazing-interactive-3d-scatter-plots-r-software-and-data-visualization 问题是它呈现在一个单独的弹出窗口中,而不是在闪亮的应用程序中,我想把它放在里面,或者更好的是,添加一个按钮,允许用户将它作为弹出窗口,但只有在被询问时。但是,我不知道如何将窃听器塞入实际的闪亮页面。
这是我的最小示例,其中包含单个文本元素和(在我的情况下)不断出现在单独窗口而不是应用程序中的图形代码。
install.packages(c("rgl", "car", "shiny"))
library("rgl")
library("car")
library(shiny)
cars$time <- cars$dist/cars$speed
ui <- fluidPage(
hr("how do we get the plot inside this app window rather than in a popup?"),
plotOutput("plot", width = 800, height = 600)
)
server <- (function(input, output) {
output$plot <- renderPlot({
scatter3d(x=cars$speed, y=cars$dist, z=cars$time, surface=FALSE, ellipsoid = TRUE)
})
})
shinyApp(ui = ui, server = server)
还有这个包,scatterplot3d,但它不是交互式的 http://www.sthda.com/english/wiki/scatterplot3d-3d-graphics-r-software-and-data-visualization
还有一些 RGL 包,但它们有相同的问题(单独的窗口)并且不提供我正在寻找的选项。
【问题讨论】: