Javascript 用JSON更新D3饼图
我有这个饼图: 当我从长度为3的数据集更改为长度为2的数据集时,它似乎不喜欢 原始数据:Javascript 用JSON更新D3饼图,javascript,json,d3.js,Javascript,Json,D3.js,我有这个饼图: 当我从长度为3的数据集更改为长度为2的数据集时,它似乎不喜欢 原始数据: var dataSet1 = [{ "id": "001 Helicopter", "name": "Helicopter", "priority": "highClass", "value": 1 }, { "id": "005 Rear Rotor", "name": "Rear Rotor", "priority": "lowClass", "value": 1 },
var dataSet1 = [{
"id": "001 Helicopter",
"name": "Helicopter",
"priority": "highClass",
"value": 1
}, {
"id": "005 Rear Rotor",
"name": "Rear Rotor",
"priority": "lowClass",
"value": 1
}, {
"id": "002 Rotor",
"name": "Rotor",
"priority": "lowClass",
"value": 1
}]
更改数据集:
function changeData(data) {
path.data(pie(data));
path.transition().duration(750).attrTween("d", arcTween); // redraw the arcs
}
传递函数新数据:
changeData(dataSet2);
数据集2:
var dataSet2 = [{
"id": "001 Helicopter",
"name": "Helicopter",
"priority": "highClass",
"value": 1
}, {
"id": "004 Seat",
"name": "Seat",
"priority": "lowClass",
"value": 1
}]
它似乎没有更新数据集。两种模式中的一种,即“直升机”调整良好(占图表的1/2),但其他模式调整不好。我见过这个例子:
它说使用这个:
function type(d) {
d.apples = +d.apples || 0;
d.oranges = +d.oranges || 0;
return d;
}
但是我不知道如何在我的数据集中实现这一点:(有什么想法吗?您没有处理更新函数中的
输入
,更新
,退出
模式:
function changeData(data) {
var path = svg.datum(data)
.selectAll("path").data(pie); //<-- update selection
path.exit().remove(); //<-- exit selectin
path.transition().duration(750).attrTween("d", arcTween); // redraw the arcs for the paths left
}
函数更改数据(数据){
var path=svg.datum(数据)
.selectAll(“path”).data(pie);//集成了您所说的更新,以便在我添加数据时正确更改:,再次感谢