увеличенный вид выбранного узла и его соединений в visNetwork в новом окне в Shiny - PullRequest
0 голосов
/ 07 февраля 2020

Я использую visNetwork и должен показать выбранный узел и его соединения в новом всплывающем окне. Уровень соединений должен быть настраиваемым. Таким образом, при увеличении или уменьшении уровня подключенные узлы должны увеличиваться или уменьшаться. Мне удалось настроить уровень соединений в той же вкладке, но не в новом всплывающем окне. Нужна помощь с этим.

Фрагмент кода ui.R для visnetwork

dashboardPage(title = "Sample" ),
              dashboardBody(
                fluidRow(
                  tabBox(width = "100%", 
                         tabPanel("Correlation Graph (weighted)",
                                  fluidRow(
                                    style='height:1300px',
                                    column(12, withSpinner(visNetworkOutput("network", height="600px")),uiOutput("popup"))
                                  ))
                  )
                )
              )
)

Фрагмент кода server.R для visnetwork

visNetwork(nodes, edges, height = "600px", width = "100%") %>%
      visOptions(collapse = TRUE, highlightNearest = list(enabled=TRUE,degree=2), nodesIdSelection = list(enabled = TRUE,
                                                                  style = 'width: 300px; height: 26px;')) %>%
      visNodes(font="20") %>%
      visEdges(shadow = TRUE,font="30",
               arrows =list(to = list(enabled = TRUE, scaleFactor = 1)),
               color = list(color = "gray", highlight = "#181818")) %>%

      visGroups(groupname = "FALSE", color = "darkblue", shape = "square", 
                shadow = list(enabled = TRUE)) %>% 

      visLayout(improvedLayout = TRUE)  %>%
      visInteraction(tooltipStyle = 'position: fixed;visibility:hidden;padding: 5px;white-space: nowrap;font-family: cursive;font-size:18px;font-color:purple;background-color: red;')%>%
    visEvents(click = "function(nodes) {
              Shiny.onInputChange('selected_node', nodes.nodes[0]);
              no_of_nodes = this.getConnectedNodes(nodes.nodes[0]);
              Shiny.onInputChange('nodes_data', no_of_nodes);
              ;}",
              selectEdge = "function(edges) {
              Shiny.onInputChange('edge_data', this.body.data.edges._data[edges.edges[0]]);
              ;}") %>%
      visInteraction(multiselect = T)
  })
...