D3.js 在d3js中使用复杂数据结构
我正在制作一个交互式折线图,从复杂的数据结构中捕获数据时遇到了问题 我传递了一组路径,它可以工作:D3.js 在d3js中使用复杂数据结构,d3.js,D3.js,我正在制作一个交互式折线图,从复杂的数据结构中捕获数据时遇到了问题 我传递了一组路径,它可以工作: path = [[{x:int,y:int},{x:int,y:int},{x:int,y:int}], [{x:int,y:int},{x:int,y:int},{x:int,y:int}], [{x:int,y:int},{x:int,y:int},{x:int,y:int}]] 但这是我正在使用的数据结构: data:[{ id: 0,
path = [[{x:int,y:int},{x:int,y:int},{x:int,y:int}],
[{x:int,y:int},{x:int,y:int},{x:int,y:int}],
[{x:int,y:int},{x:int,y:int},{x:int,y:int}]]
但这是我正在使用的数据结构:
data:[{
id: 0,
image:[int values],
path:[{x:int,y:int},{x:int,y:int},{x:int,y:int}],
pixel:[int values]
},
id: 1,
image:[int values],
path:[{x:int,y:int},{x:int,y:int},{x:int,y:int}],
pixel:[int values]
}]
我用标准的valueline函数制作了一个折线图:
var valueline = d3.line()
.x(function(d) { return xScale(d.x); })
.y(function(d) { return yScale(d.y); })
.curve(d3.curveMonotoneX);
chart.selectAll(".line-group")
.data(path)
.enter()
.append("g")
.attr("class", "line-group")
.append("path")
.attr("d", valueline)
我想将整个数据数组传递给d3js,函数valueline从数据数组中每个图像的路径键捕获x和y
有什么想法吗?谢谢 我最终使用了rioV8解决方案。
chart.selectAll(".line-group")
.data(data)
.enter()
.append("g")
.attr("class", "line-group")
.append("path")
.attr("d", d => valueline(d.path))
我还从以下方面找到了另一种解决方法:
这并不能回答这个问题。若要评论或要求作者澄清,请在其帖子下方留下评论。-@AashishJ:这是一个问题的解决方案,Ricardo使用了相同的方法,但以一种奇怪的非D3方式
chart.selectAll(".line-group")
.data(data)
.enter()
.append("g")
.attr("class", "line-group")
.selectAll(".lineChart")
.data(function(d) { return [d.path] })
.enter()
.append("path")
.attr("class", "lineChart")
.attr("d",valueline)