2017-03-02 68 views
0

下面闪亮的应用程序无法渲染网络图形。而用Rmd文件,我确实得到了图形。下面是一个可重复的例子。急于知道错误在哪里。闪亮renderRadialNetwork无法渲染图形

library(shiny) 
library(shinythemes) 
library(networkD3) 
library(data.tree) 
library(tidyr) 

# Define UI for application that draws a network graph 
ui <- fluidPage(theme = shinytheme("slate"), 
    sliderInput("number", 
       "Random Numbers:", 
       min = 1, 
       max = 100, 
       value = 20), 

    # Show a plot of the generated distribution 
    radialNetworkOutput("radial") 
) 

# Define server logic required to draw a network graph 
server <- function(input, output) { 

Data_tree <- reactive({ 
    data.frame(Start="Class", 
       Asset = sample(c("FI","Equity","Currency"),input$number,replace = TRUE), 
       Sub_Asset = sample(c("Asia","Europe","USA"),input$number,replace = TRUE), 
       Ticker = replicate(input$number,paste0(sample(LETTERS,3),collapse=""))) %>% 
unite(col="pathString",Start,Asset,Sub_Asset,Ticker,sep="-",remove=FALSE) %>% 
select(-Start) %>% as.Node(pathDelimiter = "-") 
}) 

    output$radial <- renderRadialNetwork({ 
    # draw the radialNetwork with the specified size 
    ToListExplicit(Data_tree(), unname = TRUE) 
    }) 
} 

# Run the application 
shinyApp(ui = ui, server = server) 

图形应该如下: enter image description here

回答

0

刚发现代码中的短期未来。在renderRadialNetwork函数中需要添加radialNetwork()

这里是工作最终代码。

library(shiny) 
library(shinythemes) 
library(networkD3) 
library(data.tree) 
library(tidyr) 

# Define UI for application that draws a network graph 
ui <- fluidPage(theme = shinytheme("slate"), 
    sliderInput("number", 
       "Random Numbers:", 
       min = 1, 
       max = 100, 
       value = 20), 

    # Show a plot of the generated distribution 
    radialNetworkOutput("radial") 
) 

# Define server logic required to draw a network graph 
server <- function(input, output) { 


    Data_tree <- reactive({ 
data.frame(Start="Class", 
         Asset = sample(c("FI","Equity","Currency"),input$number,replace = TRUE), 
         Sub_Asset = sample(c("Asia","Europe","USA"),input$number,replace = TRUE), 
         Ticker = replicate(input$number,paste0(sample(LETTERS,3),collapse=""))) %>% 
unite(col="pathString",Start,Asset,Sub_Asset,Ticker,sep="-",remove=FALSE) %>% 
select(-Start) %>% as.Node(pathDelimiter = "-") 
    }) 

    output$radial <- renderRadialNetwork({ 
    # draw the radialNetwork with the specified size 
radialNetwork(ToListExplicit(Data_tree(), unname = TRUE), linkColour = "#ccc",nodeColour = "#fff", 
       nodeStroke = "orange",textColour = "#cccccc") 
    }) 


} 

# Run the application 
shinyApp(ui = ui, server = server)