[英]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.