在闪亮的应用程序中缩放 dgr_graph 的更好方法

Better way of scaling a dgr_graph within a shiny app

我正在构建一个闪亮的应用程序,它应该显示 bupaR process_map,这是一种工作。

遗憾的是 process_map() 函数 returns 一个 dgr_graph 对象,它不能用 DiagrammeR::renderGrViz()DiagrammeR::renderDiagrammeR() 函数渲染。我找到了一种将其转换为 render_graph()grViz / htmlwidget 对象的方法,但这种方式无法很好地缩放图形。这尤其糟糕,因为我正在处理非常长的线性图。

这是一个 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-对象,填满应用程序的整个宽度,而不仅仅是中间的 post- 邮票大小?理想的是自适应的,不需要以像素为单位的固定宽度。

事实证明,问题不在于服务器上的 render_graph-函数,而是 UI 中 renderGrViz-函数的默认设置。当您将它设置为 grVizOutput(outputId = "diagram", height = "100%") 时,它工作正常。