在闪亮的应用程序中缩放 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%")
时,它工作正常。
我正在构建一个闪亮的应用程序,它应该显示 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%")
时,它工作正常。