igraph и реактивность Shiny не работают вместе - PullRequest
2 голосов
/ 10 февраля 2020

Я пытаюсь создать блестящее приложение с сетевыми графиками, используя igraph. Я не знаю, делаю ли я что-то не так или не могу использовать реактивные кадры данных с igraph. Это то, что у меня есть (данные работают с igraph вне Shiny Framework):

library(shinydashboard)
library(tidyverse)
library(htmltools)
library(igraph)
library(ggraph)
library(shiny)

## ui.R ##

## UI CONFIG

## Header
header <- dashboardHeader(title = "", titleWidth = 0)

# Sidebar content
sidebar <- dashboardSidebar(
  sidebarMenu(
    menuItem(text = "Gráfico de redes", tabName = "network_graph", icon = icon("map"))
))


## Body content
body <-   
  dashboardBody(
    estilo_tu, 
    tabItems(

      # Front Page



      tabItem(tabName = "network_graph",
              tabsetPanel(
                fluidRow(
                br(),
                column(2,
                       selectInput("year",
                                   "Seleccione año:",
                                   choices = unique(data$year),
                       br()
                ),
                column(10,
                       plotOutput("plot"))
              )

              )
      )))




ui <- dashboardPage(header, sidebar, body, skin = "black")

server <- function(input, output) { 

data <- reactive({highschool %>% 
  filter(year == input$year)})

graph <- graph_from_data_frame(data())  

p <- ggraph(graph, layout = 'stress') + 
  geom_edge_link(aes(colour = factor(year)),
                 arrow = arrow(length = unit(2, 'mm')), 
                 end_cap = circle(3, 'mm')) + 
  geom_node_text(aes(label = name), size = 3, repel = T) + 
  theme_graph()

output$plot <- renderPlot(p)


}


shinyApp(ui, server)

Если я сделаю это stati c, это сработает. Я думаю, что проблема связана с функцией graph_from_data_frame.

...