Javascript 退出()不适用于d3组条形图

Javascript 退出()不适用于d3组条形图,javascript,angularjs,d3.js,Javascript,Angularjs,D3.js,我已经用json数据创建了一个组条形图。单击图例,我想在图表中显示和隐藏特定的条形图(使用d3的输入和退出功能) 我的json数据如下 var values = [{ "timeId": "201501040100", "value": 2454721, "week": 1 }, { "timeId": "201501040100", "value": 4017731, "week": 2 }, { "timeId": "201501040

我已经用json数据创建了一个组条形图。单击图例,我想在图表中显示和隐藏特定的条形图(使用d3的输入和退出功能)

我的json数据如下

var values = [{
    "timeId": "201501040100",
    "value": 2454721,
    "week": 1
}, {
    "timeId": "201501040100",
    "value": 4017731,
    "week": 2
}, {
    "timeId": "201501040100",
    "value": 6656528,
    "week": 3
}, {
    "timeId": "201501040100",
    "value": 7472223,
    "week": 4
}, {
    "timeId": "201501040200",
    "value": 2454721,
    "week": 1
}, {
    "timeId": "201501040200",
    "value": 3017731,
    "week": 2
}, {
    "timeId": "201501040200",
    "value": 5017731,
    "week": 3
}, {
    "timeId": "201501040200",
    "value": 7472223,
    "week": 4
}, ];
我已经根据timeId对这些数据进行了分组

weeksVolume = _.groupBy(values, 'timeId');
weeksVolume = Object.keys(weeksVolume).map(function(key) {
    return weeksVolume[key]
});
正在工作的KR解决方案就在这里

现在单击第一个图例,我想在每次单击中隐藏并显示“周:1”数据。对于该图例,我可以处理数据修改(意味着从数据集中删除或添加特定的周数据)


使用更新后的数据集,我尝试重新绘制图表,但它无法正常工作。每次它都从上一个索引中删除和添加数据。

您的问题在于您的
updateChart
功能:

function updateChart() {

    ...

    volumeBars = week.selectAll("rect")
        .data(function(d, i) {
            return d;
        });  // <= Here is the problem

   ...
}
您可以在此处找到
数据
函数的文档:

此外,在
退出
调用之前,您不必再创建另一个选择。之前已经创建了选择,与您调用
回车
的选择相同。因此,您只需编写:

volumeBars.exit().text(function(d) {console.log(d);}).remove();
下面是更新程序:

希望能有帮助

volumeBars.exit().text(function(d) {console.log(d);}).remove();