visNetwork 未显示在面板中 div
visNetwork not displaying in panel div
我已经开始使用 shinyLP 制作 html 元素,还使用 visNetwork 制作网络图。我注意到 visNetwork 在放置在孔面板中或根本没有面板时显示良好。但是,当放置在面板 div 中时,无论是使用 shinyLP 还是通过原始 HTML,它都不会显示。简而言之,我只展示了不在面板中和在面板中的代码差异 div。 有人知道让 visNetwork 出现在这种特定容器类型中的方法吗? 我想使用这种容器类型,因为我想保持我的 CSS 原样而不是原样只为这个容器改变一些东西。有人知道这个问题的原因吗?
这在 visNetworkOutput 不在面板中时有效
library(shinyLP)
library(visNetwork)
ui <- fluidPage(
visNetworkOutput("network")
)
server <- function(input, output) {
output$network <- renderVisNetwork({
# minimal example
nodes <- data.frame(id = 1:3)
edges <- data.frame(from = c(1,2), to = c(1,3))
visNetwork(nodes, edges)
})
}
shinyApp(ui, server)
visNetworkOutput 在面板中时无法显示
ui <- fluidPage(
panel_div("default", "", visNetworkOutput("network"))
)
server <- function(input, output) {
output$network <- renderVisNetwork({
# minimal example
nodes <- data.frame(id = 1:3)
edges <- data.frame(from = c(1,2), to = c(1,3))
visNetwork(nodes, edges)
})
}
shinyApp(ui, server)
这是 shinyJS
版本 1.1.0 中的错误。我找到了一个(笨拙的)解决方法并将其作为错误发布在 htmlwidgets
中,Joe Cheng 看到了它并在大约 10 分钟内给我修复了它。太棒了...
下面是具有更好解决方法的代码(pandel_div
的新定义):
library(shiny)
library(shinyLP)
library(visNetwork)
# override the currently broken definition in shinyLP version 1.1.0
panel_div <- function(class_type, panel_title, content) {
div(class = sprintf("panel panel-%s", class_type),
div(class = "panel-heading",
h3(class = "panel-title", panel_title)
),
div(class = "panel-body", content)
)
}
ui <- fluidPage(
panel_div("default", "panel1",visNetworkOutput("network") )
)
server <- function(input, output) {
output$network <- renderVisNetwork({
# minimal network
nodes <- data.frame(id = 1:3)
edges <- data.frame(from = c(1,2), to = c(1,3))
visNetwork(nodes,edges)
})
}
shinyApp(ui, server)
这就是它的样子:
更新: 尝试使用另一个 htmlwidget
包 (sigma
) 并得到相同的行为。所以将其归档为 htmlwidget
错误:panel_div htmlwidget issue
更新: JC 将其识别为 shinyJS
错误。更改了我上面的解决方案以反映他的建议。
我已经开始使用 shinyLP 制作 html 元素,还使用 visNetwork 制作网络图。我注意到 visNetwork 在放置在孔面板中或根本没有面板时显示良好。但是,当放置在面板 div 中时,无论是使用 shinyLP 还是通过原始 HTML,它都不会显示。简而言之,我只展示了不在面板中和在面板中的代码差异 div。 有人知道让 visNetwork 出现在这种特定容器类型中的方法吗? 我想使用这种容器类型,因为我想保持我的 CSS 原样而不是原样只为这个容器改变一些东西。有人知道这个问题的原因吗?
这在 visNetworkOutput 不在面板中时有效
library(shinyLP)
library(visNetwork)
ui <- fluidPage(
visNetworkOutput("network")
)
server <- function(input, output) {
output$network <- renderVisNetwork({
# minimal example
nodes <- data.frame(id = 1:3)
edges <- data.frame(from = c(1,2), to = c(1,3))
visNetwork(nodes, edges)
})
}
shinyApp(ui, server)
visNetworkOutput 在面板中时无法显示
ui <- fluidPage(
panel_div("default", "", visNetworkOutput("network"))
)
server <- function(input, output) {
output$network <- renderVisNetwork({
# minimal example
nodes <- data.frame(id = 1:3)
edges <- data.frame(from = c(1,2), to = c(1,3))
visNetwork(nodes, edges)
})
}
shinyApp(ui, server)
这是 shinyJS
版本 1.1.0 中的错误。我找到了一个(笨拙的)解决方法并将其作为错误发布在 htmlwidgets
中,Joe Cheng 看到了它并在大约 10 分钟内给我修复了它。太棒了...
下面是具有更好解决方法的代码(pandel_div
的新定义):
library(shiny)
library(shinyLP)
library(visNetwork)
# override the currently broken definition in shinyLP version 1.1.0
panel_div <- function(class_type, panel_title, content) {
div(class = sprintf("panel panel-%s", class_type),
div(class = "panel-heading",
h3(class = "panel-title", panel_title)
),
div(class = "panel-body", content)
)
}
ui <- fluidPage(
panel_div("default", "panel1",visNetworkOutput("network") )
)
server <- function(input, output) {
output$network <- renderVisNetwork({
# minimal network
nodes <- data.frame(id = 1:3)
edges <- data.frame(from = c(1,2), to = c(1,3))
visNetwork(nodes,edges)
})
}
shinyApp(ui, server)
这就是它的样子:
更新: 尝试使用另一个 htmlwidget
包 (sigma
) 并得到相同的行为。所以将其归档为 htmlwidget
错误:panel_div htmlwidget issue
更新: JC 将其识别为 shinyJS
错误。更改了我上面的解决方案以反映他的建议。