我想在R Shiny应用程序中包含3D dynamic (即可以通过移动图来更改其视角)直方图小部件。
不幸的是,直到现在我还没有找到任何东西。
到目前为止,我的搜索结果:使用threejs(例如CRAN上的here和GitHub上的there),可以使用许多不同的表示形式(散点图,表面等),但不能使用 3D 直方图。 plot3D和plot3Drgl没有任何R Shiny副本。
除非已经存在某些东西,否则我的意图是从vis.js的一个子库(即graph3d)创建HTMLWidget。
您对此问题有何看法?
最诚挚的问候,
奥利维尔
答案 0 :(得分:0)
非常感谢,DSGym。我不知道这个图书馆。
在我最初的消息(现在已修改)中,我实际上忘了提到动态功能,即仅通过使用鼠标移动绘图即可更改绘图的角度,就像使用vis.js-graph3d一样。
似乎从高宪章的地块不能做到这一点,还是我误会了?
[EDIT]:我刚刚检查过Shiny:它是静态的。
答案 1 :(得分:0)
plot3Drgl
是可能的。这是一个例子。
library(plot3Drgl)
library(shiny)
options(rgl.useNULL = TRUE)
ui <- fluidPage(
rglwidgetOutput("myWebGL")
)
server <- function(input, output) {
save <- options(rgl.inShiny = TRUE)
on.exit(options(save))
output$myWebGL <- renderRglwidget({
try(rgl.close())
V <- volcano[seq(1, nrow(volcano), by = 5),
seq(1, ncol(volcano), by = 5)] # lower resolution
hist3Drgl(z = V, col = "grey", border = "black", lighting = TRUE)
rglwidget()
})
}
shinyApp(ui, server)
答案 2 :(得分:0)
我的软件包graph3d
现在在CRAN上。
library(graph3d)
dat <- data.frame(x = c(1,1,2,2), y = c(1,2,1,2), z = c(1,2,3,4))
graph3d(dat, type = "bar", zMin = 0, tooltip = TRUE)
您可以自定义工具提示:
graph3d(dat, type = "bar", zMin = 0,
tooltip = JS(c("function(xyz){",
" var x = 'X: ' + xyz.x.toFixed(2);",
" var y = 'Y: ' + xyz.y.toFixed(2);",
" var z = 'Z: ' + xyz.z.toFixed(2);",
" return x + '<br/>' + y + '<br/>' + z;",
"}"))
)
我意识到我必须添加一个选项来控制轴标签的大小...