Я пытаюсь создать блестящее приложение с сетевыми графиками, используя 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.