Javascript 如何更新d3图形的数据?
我有一个d3图,其中包含频繁变化的数据点,我想在图中显示这些数据点。目前,每次更新数据对象时,我都会重新绘制完整的绘图:Javascript 如何更新d3图形的数据?,javascript,d3.js,Javascript,D3.js,我有一个d3图,其中包含频繁变化的数据点,我想在图中显示这些数据点。目前,每次更新数据对象时,我都会重新绘制完整的绘图: container.remove() container = svg.append("g"); drawContainer(); 使用drawContainer中的绘图功能: container.selectAll(".dot") .data(datajson) .enter().append("circle") .attr("class", "dot")
container.remove()
container = svg.append("g");
drawContainer();
使用drawContainer中的绘图功能:
container.selectAll(".dot")
.data(datajson)
.enter().append("circle")
.attr("class", "dot")
.attr("r", 3.5)
.attr("cx", xMap)
.attr("cy", yMap)
.style("fill", function(d) { return color(cValue(d));})
我试着简单地打电话:
container.selectAll(".dot")
.data(newdata)
添加新数据点,但这不会使新数据点可见。如何仅使用新数据点更新绘图?我认为您可以执行类似于调用
drawContainer()的操作代码>
而不是
container.selectAll(".dot")
.data(newdata);
你可以做:
var dots = container.selectAll(".dot")
.data(newdata);
dots.enter().append("circle")
.attr("class", "dot")
.attr("r", 3.5)
.attr("cx", xMap)
.attr("cy", yMap)
.style("fill", function(d) { return color(cValue(d));});
dots.exit().remove();
有关完整的示例:
这是一本关于如何使用d3中的enter-exit在d3中创建更新删除点的好书