我有一个d3图表,其中包含我想在图表中显示的频繁变化的数据点。目前,每次数据对象更新时,我都会重新绘制完整的绘图:
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)
添加新数据点,但这并没有使新数据点可见。如何仅使用新数据点更新绘图?
答案 0 :(得分:1)
我认为您可以执行类似于调用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();
完整的例子: Admob native express ads