我正在构建一个闪亮的应用程序,该应用程序应该显示bupaR
process_map
,可以正常工作。
可悲的是process_map()
函数返回一个dgr_graph
对象,无法使用DiagrammeR::renderGrViz()
或DiagrammeR::renderDiagrammeR()
函数进行渲染。我找到了一种使用grViz / htmlwidget
将其转换为render_graph()
对象的方法,但是这种方法无法很好地缩放图形。由于我要处理很长的线性图,因此这特别糟糕。
这里是MWE:
# server.R
library(DiagrammeR)
library(bupaR)
shinyServer(
function(input, output) {
plot <- patients %>%
process_map(rankdir = "TB",
render = FALSE)
output$diagram <- renderGrViz({
render_graph(plot)
})
}
)
# ui.R
library(DiagrammeR)
shinyUI(fluidPage(
titlePanel("DiagrammeR + shiny"),
grVizOutput(outputId = "diagram")
))
是否有更好的方法来显示闪亮的dgr_graph
对象,该对象会填充应用程序的整个宽度,而不仅仅是中间的后戳大小?理想的是自适应的东西,不需要固定的像素宽度。
事实证明,问题不在于服务器上的render_graph
功能,而是UI中renderGrViz
功能的默认设置。当您将其设置为grVizOutput(outputId = "diagram", height = "100%")
时,它就可以正常工作。