替换d3.js图而不是每次都创建一个新图

时间:2013-04-14 14:48:56

标签: d3.js

我正在使用d3.js与GWT结合使用,每次调用用于创建饼图的javascript代码时,它会附加一个新的代码,而不是用新值替换旧代码。

如何更改此代码,以便在添加新代码之前删除旧代码?

var svg = d3.select(".body").append("svg")
            .attr("width", width)
            .attr("height", height)
          .append("g")
            .attr("transform", "translate(" + width / 2 + "," + height / 2 + ")");

2 个答案:

答案 0 :(得分:5)

而不是改变你的代码我会建议创建一次,然后使用你的数据构建你的图表并查看d3.js的.enter()和.exit()方法 - 所以如果你的数据更改了库会添加/删除一些元素。

干杯

答案 1 :(得分:3)

添加

d3.select(".body").selectAll("svg").remove();
在您的代码删除所有SVG元素之前