2017-03-02 69 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)