簡體   English   中英

在D3 Sankey中,如何從對象或數組而不是json或csv文件加載?

[英]In D3 Sankey, how can I load the from objects or arrays instead of either json or csv files?

級別:初學者。

我正在看D3中實現的sankey,顯示的示例似乎都是使用JSON或CSV中的數據,而不是簡單地使用對象或數組。 一個或兩個可能做不同的事情似乎要走很長一段路,而不是簡化事情。

有沒有一種方法可以只將數據加載到代碼中,而不必將數據格式化為外部文件? 謝謝!

可用代碼的示例: http : //bl.ocks.org/d3noob/c2637e28b79fb3bfea13

如果沒有任何異步操作就可以使用數據,則可以按以下步驟實現,請替換d3.json

d3.json("sankey-formatted.json", function(error, graph) {
  // ...
})

使用您的自定義加載功能,例如

loadData(function (graph) {
  // contents of the function passed to d3.json
})

函數loadData現在接收一個函數作為參數,應該使用您擁有的數據來調用它,該數據可以是普通的JS對象

function loadData(cb) {
  var data = {
   "nodes":[
    {"node":0,"name":"node0"},
    {"node":1,"name":"node1"},
    {"node":2,"name":"node2"},
    {"node":3,"name":"node3"},
    {"node":4,"name":"node4"}
    ],
    "links":[
    {"source":0,"target":2,"value":2},
    {"source":1,"target":2,"value":2},
    {"source":1,"target":3,"value":2},
    {"source":0,"target":4,"value":2},
    {"source":2,"target":3,"value":2},
    {"source":2,"target":4,"value":2},
    {"source":3,"target":4,"value":4}
    ]}

    // invoke the function passed as an argument
    cb(data)
}

這將是困難的方法,而簡單的方法將是擺脫該函數並具有直接保存數據的graph變量

var graph = { /* the nodes and links are here */ }
// contents of the function passed to d3.json

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM