2017-05-26 16 views
1

私はshinyLPを使ってhtml要素を作成し、visNetworkを使ってネットワークダイアグラムを作成しました。私は、井戸パネルにもパネルがない場合でも、visNetworkがうまく表示されることに気付きました。ただし、パネルdivに配置されている場合は、shinyLPまたは未加工HTMLを使用して表示されません。簡潔にするために、私は、パネルにないとパネルのdivにあることのコードの違いだけを示しています。 visNetworkを特定のコンテナタイプにする方法を知っている人はいますか?私はこのコンテナタイプを使用したいと思います。なぜなら、私は自分のCSSをそのままの状態に保ち、この1つのコンテナだけを変えたくないからです。誰もがこの問題の原因を知っていますか?パネルのdivにvisNetworkが表示されない

これは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) 
+0

正確に 'panel_div()'でしようとしていますか?ドキュメントを見ると、ネットワークを 'content'パラメータとして渡そうとする' panel_div(class_type、panel_title、content) 'が表示されます:"クラス文字のa [n]オブジェクト、テキストコンテンツ "と呼ばれる。あなたの出力は文字に変換され、表示されません。 – BigDataScientist

+0

いいえ、それはちょうどバグです:)。しかし、それはテストされていない、すなわちテストマトリックスにないことがあります。 –

答えて

1

それは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) 

そして、これは、それは次のようになります。

enter image description here

更新:別のhtmlwidgetパッケージ(sigma)を試してみて、同じ動作をしました。だから、htmlwidgetバグとしてこれを提出:panel_div htmlwidget issue

更新: JCがshinyJSバグとしてそれを同定しました。彼の提案を反映するため上記の私のソリューションを変更しました。

+0

好奇心が強い、この作品はあなたのために働いたのですか? –

+1

今朝仕事で試してみましたが、魅力的でした!迅速かつ完全な答えをありがとう。 – georgemirandajr

関連する問題