आर

2016-01-02 4 views
9

में संकी आरेख आर के networkD3 पैकेज की मदद से काफी सामान्य सांकी आरेख बनाने का प्रयास कर रहा है। बस में संदर्भ के लिए - यहाँ पैकेज मैनुअलआर

library(networkD3) 
library(jsonlite) 
library(magrittr) 

energy <- "https://cdn.rawgit.com/christophergandrud/networkD3/master/JSONdata/energy.json" %>% 
     fromJSON 

sankeyNetwork(Links = energy$links, 
       Nodes = energy$nodes, 
       Source = "source", 
       Target = "target", 
       Value = "value", 
       NodeID = "name", 
       units = "TWh", 
       fontSize = 12, 
       nodeWidth = 30) 

जिसमें परिणाम से उदाहरण है:

reference Sankey diagram from manual

मेरे काफी सरल विस्तार निम्नलिखित अंतर्निहित डेटा के साथ एक चित्र के निर्माण के होते हैं:

links <- structure(list(source = structure(c(1L, 2L, 3L, 1L, 2L, 3L, 4L, 
             5L, 4L, 5L), 
             .Label = c("1", "2", "3", "4", "5"), 
             class = "factor"), 
        target = structure(c(1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L, 4L, 
             4L), 
             .Label = c("4", "5", "6", "7"), 
             class = "factor"), 
        value = c(88L, 774L, 1220L, 412L, 5335L, 96L, 3219L, 
           1580L, 111L, 7607L)), 
       row.names = c(NA, 10L), 
       class = "data.frame", 
       .Names = c("source", "target", "value")) 

nodes <- structure(list(lab = c("A", "B", "C", "D", "E", "F", "G")), 
       row.names = c(NA, -7L), 
       .Names = "lab", class = "data.frame") 

इस सरल एप्लिकेशन के साथ चुना गया ताकि मेरा डेटा मैन्युअल उदाहरण को सबसे नज़दीकी से प्रतिबिंबित कर सके। जब मैं, तुलनीय समारोह चलाने हालांकि:

sankeyNetwork(Links = links, 
       Nodes = nodes, 
       Source = "source", 
       Target = "target", 
       Value = "value", 
       NodeID = "lab") 

कुछ नहीं होता। मेरी गलती क्या है?

उत्तर

9

यह ठीक काम करता है अगर आप 0 पर अपने source और target नंबर शुरू:

# First coercing elements of links to numeric, so that we can subtract 1 
links[] <- lapply(links, function(x) as.numeric(as.character(x))) 
links[, 1:2] <- links[, 1:2] - 1 
sankeyNetwork(links, nodes, 'source', 'target', 'value', NodeID='lab') 

enter image description here