Javascript d3我可以就地重新计算数据吗?
我有一个折线图,完整的数据数组附在折线图上。我想在数据中从使用值列更改为pct(百分比)列。有没有一种方法可以做到这一点,即使用DOM中已有的值而不向其传递新的数据集 就我所知- 这里发生了什么Javascript d3我可以就地重新计算数据吗?,javascript,svg,scale,d3.js,Javascript,Svg,Scale,D3.js,我有一个折线图,完整的数据数组附在折线图上。我想在数据中从使用值列更改为pct(百分比)列。有没有一种方法可以做到这一点,即使用DOM中已有的值而不向其传递新的数据集 就我所知- 这里发生了什么 // now redraw the line to use pct line.y(function(d) { return yScale(d.pct); }); vis.selectAll("lines") .t
// now redraw the line to use pct
line.y(function(d) {
return yScale(d.pct); });
vis.selectAll("lines")
.transition()
.duration(500)
.ease("linear");
}
您的数据已加入,因此您只需更新您的选择:
var yPctScale = d3.scale.linear()
.domain([0, 100])
.range([height - padding, padding]);
var pct_line = d3.svg.line()
.x(function(d) {
return xScale(d.date); })
.y(function(d) {
return yPctScale(d.pct); })
.interpolate("basis");
vis.selectAll(".lines")
.transition().duration(1500).ease("sin-in-out")
.attr("d", pct_line);
var yPctScale = d3.scale.linear()
.domain([0, 100])
.range([height - padding, padding]);
var pct_line = d3.svg.line()
.x(function(d) {
return xScale(d.date); })
.y(function(d) {
return yPctScale(d.pct); })
.interpolate("basis");
vis.selectAll(".lines")
.transition().duration(1500).ease("sin-in-out")
.attr("d", pct_line);