我们编写了一个SQL列表和Web服务器的2列电子表格,每天都与其他人交谈:
Source,Target
sql1,web1
sql1,web2
sql2,web2
sql2,sql1
sql2,web3
web2,web3
web3,web2
web3,sql2
我想创造一个漂亮的'和simple D3 graph,(不一定是那个,甚至是静态图可能会这样)来自上面的数据。流动方向并不重要。每个组(SQL或WEB)都需要使用不同的颜色。
但是,D3要求数据采用json格式。
如何让D3代码接受我的2列数据?
或者如何将我的2列数据转换为D3代码所需的JSON格式?如果有人可以指导,我很乐意编写T-SQL代码。
答案 0 :(得分:1)
我们的目标是加载您的CSV并转换为强制定向图d3所期望的JSON结构。
要做到这一点:
//load your CSV via ajax as below
d3.csv("my.csv", function(json) {
//load the csv as json
//array of nodes
var nodes = [];
/array of links
var links = [];
json.forEach(function(d){
//check if node is present if not add that in the array to get unique nodes.
if (nodes.indexOf(d.Source.trim()) <0){
//sorce node not there so add
nodes.push(d.Source.trim())
}
if (nodes.indexOf(d.Target.trim()) <0){
//target node not there so add
nodes.push(d.Target.trim())
}
//link to map the nodes with its index.
links.push({source:nodes.indexOf(d.Source.trim()), target:nodes.indexOf(d.Target.trim())})
});
nodes = nodes.map(function(n){
return {name:n}
})
//now the usual code for force graph.
现在将节点和链接提供给Force有向图。
工作代码here