【发布时间】:2013-07-17 04:25:53
【问题描述】:
我正在处理从数据库中提取的一组对象;本质上是一个csv文件。一个示例对象是这样的:
var data = [
{
"name" : "blah",
"number" : 1234,
"associate" : 2234
},
{
"name" : "blurg",
"number" : 2234,
"associate" : null
},
{
"name" : "blarg",
"number" : 3334,
"associate" : null
}
]
我想做的是在具有“关联”的对象与其相应的“父对象”之间画一条线或路径,尽管它不是作为父/子结构的。
从概念上讲,这就是我的想法:
var diagonal = d3.svg.diagonal()
.source(this)
.target(dom_element_whose_number == d.associate);
var filteredData = data.filter(function(d) { return d.associate };
svg.selectAll("path")
.data(filteredData)
.enter()
.append("path")
.attr("d", diagonal);
有什么建议吗?我一直在努力解决这个问题......
【问题讨论】:
-
你需要某种结构来告诉它什么是源和目标。也就是说,预处理数据,使您拥有具有
source和target属性的元素并将其传递给.data()。
标签: javascript json csv d3.js data-visualization