visNetwork в R - PullRequest
       29

visNetwork в R

0 голосов
/ 11 мая 2019

Я создаю визуализацию с помощью visNetwork в Я хочу, чтобы кто-то здесь помог мне с пошаговым процессом создания визуализации в R. Как я могу создать визуализацию из 20 узлов с ребрами, связывающими их. Спасибо

1 Ответ

1 голос
/ 25 мая 2019

visNetwork использует кадры данных для указания имени и идентификатора узла, а также ребер, подключенных к рассматриваемому узлу.Минимальный пример из 20 узлов:

library(shiny)
library(visNetwork)

nodes <- data.frame(id = 1:20, label = 1:20)
edges <- data.frame(from = c(1:20), to = c(2:20,1))

server <- function(input, output, session) {
  output$myNetId <- renderVisNetwork({
    visNetwork(nodes, edges)
    })
}

ui <- fluidPage(
  visNetworkOutput("myNetId",
                   height <- "400px",
                   width <- "600")
)

shinyApp(ui <- ui, server <- server)

Шаг за шагом, после импорта двух необходимых библиотек мы затем указываем узел data.frame, который может включать переменную метки, если вы хотите, чтобы текст заполнялсярядом с узлом.Мы только что указали 20 узлов, идущих от 1 до 20.

переменная ребер представляет список ребер, где каждая строка в data.frame представляет начальную и конечную точку для одного ребра.Data.frame, который выглядит следующим образом:

data.frame(from = c(1,1), to = c(2,3))

... создаст два ребра от узла № 1 до узла № 2 и № 3.Я настроил его таким образом, чтобы каждый узел подключался к следующему последовательному узлу, например, к кругу.

Сервер - это объект предоставляет великолепное приложение, которое использует myNetId как ссылку на то, как должна работать visNetwork, а visNetworkOutput () функция в пользовательском интерфейсе действует как холст, указывающий, где на экране должна отображаться сеть.Вы можете добавить дополнительные параметры в функцию visNetwork (), используя>%> следующим образом:

  visNetwork(nodes, edges) %>%
      visPhysics(solver = "barnesHut",
                 minVelocity = 0.1,
                 forceAtlas2Based = list(gravitationalConstant = -150)) %>%
      visOptions(manipulation = TRUE, highlightNearest = FALSE) %>%
      visEdges(arrows = 'to')

Надеюсь, это поможет!

...