当我缩放图表时,我需要用新的数据块(AJAX 查询)替换一些数据。
但是我无法与没有旧点和更新线路径的原始数据合并
请参阅JSFiddle 上的缩放图表。
// Replace or add part of data
function zoom(g) {
var data2add=[ // get new data by ajax query
{"date":"2013-05-02T20:00","speed":0.878,"angle":269,"x":-0.725,"y":-0.018},
...
];
console.log("data", data, "data2add", data2add);
data2add = data2add.map(function(d, i) {
return {
date:meanDate.call(data, d, i),
Speed:Speed.call(data, d, i),
angle:angle.call(data, d, i),
xSpeed:xSpeed.call(data, d, i),
ySpeed:ySpeed.call(data, d, i)
};
});
data = data.filter(function(element, index, array){
return (element.date<data2add[0].date || element.date > data2add[data2add.length-1].date);
})
.sort(function (a, b) {
return a.date - b.date;
})
.concat(data2add); console.log("newData", data);
d3.selectAll("path.line").data(data).enter();
g.selectAll('circle').data(data).enter().append("circle")
.attr("class", "dot");
g.updateCurve()
.drawAxis ();
}