繁体   English   中英

如何更新 d3 图的数据?

[英]How can I update data of d3 graph?

我有一个 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)

添加新数据点,但这并没有使新数据点可见。 如何仅使用新数据点更新绘图?

我认为你可以做一些类似于调用drawContainer();事情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();

完整示例: https : //bl.ocks.org/mbostock/3808218

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM