D3.js中怎样在同一个svg中更新图形?

首先用<svg width="500" height="500" id="svg1"></svg>定义了一个svg

假设在这个svg1中画了一个饼图

然后选取另一组数据,需要仍然在是svg1 中画出新数据的饼图

但实际效果是,两个饼图重复画在一起。

请问怎样可以仍然在svg1上, 画新数据之前先清除原来的饼图再画新图 ?

已经试过使用 d3.select('#chart').remove() 的方式会删除 svg1

试下这个。 可以删除现有的条形图,还可以重新添加一个新的条形图。

d3.select("#barChart").select("svg").remove();

var svg = d3.select('#barChart')
       .append('svg')
       .attr('width', width + margins.left + margins.right)
       .attr('height', height + margins.top + margins.bottom)
       .append('g')
       .attr('transform', 'translate(' + margins.left + ',' + margins.top + ')');
d3.selectAll ("svg1> *").remove();这样子应该能解决你的问题了。

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632