Javascript 退出()不适用于d3组条形图
我已经用json数据创建了一个组条形图。单击图例,我想在图表中显示和隐藏特定的条形图(使用d3的输入和退出功能) 我的json数据如下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
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();