首页 > 解决方案 > Shiny中的R网络图不起作用

问题描述

我正在尝试根据用户的下拉输入显示不同的图表。我有其他输入工作。只是网络图不起作用。如果我将它切换到不同的图表,它会起作用;只是网络图不起作用。

    if(input$level == "function"){

  data = matrix(sample(0:1, 400, replace = TRUE, prob = c(0.8,0.2)), nrow = 20)
  network = graph_from_adjacency_matrix(data, mode='undirected', diag = F)

  plot(network, layout = layout.circle, main = "circle")
}

这一切都在一个反应​​函数中。我也尝试过使用 igraph 库以及 igraphinshiny 库

标签: rshinyigraph

解决方案


以下示例根据所选选项绘制网络图或 5 个点的简单图:

library(shiny)
library(igraph)
ui <- fluidPage(

  sidebarLayout(
    sidebarPanel(
      selectInput("graph", 
                  label = "Choose graph to display",
                  choices = c("Simple plot", "Network Graph"), 
                  selected = "Network Graph")), 
    mainPanel(
      plotOutput("myplot")
    )
  )

)

server <- function(input, output) {

  output$myplot <- renderPlot({

    # Plot Network graph is selected
    if (input$graph == "Network Graph"){
      data = matrix(sample(0:1, 400, replace = TRUE, prob = c(0.8,0.2)), nrow = 20)
      network = graph_from_adjacency_matrix(data, mode='undirected', diag = F)

      # plot simple graph of 5 points
      plot(network, layout = layout.circle, main = "circle")
    } else {
      plot(1:5)
    }
  })


}

shinyApp(ui, server)

推荐阅读