我正在使用d3和弦图来显示来自多个JSON文件的一些数据。每年有一个JSON文件,当我选择一年(选择输入或按钮)时,数据应该更新。
我的方法是这样的:
// ...
// Setup width, height, radius, chord layout and append the svg container element
// ...
// Load the default data file
d3.json("data/m2010.json", function(matrix) {
render(matrix);
});
// ...
// Usual render function, like the examples of mbostock.org
// ...
// Listener: the user want to change the year
d3.select('#year').on('click', function(){
d3.event.preventDefault(); // Actually it's an href
d3.selectAll('.groups').remove();
d3.selectAll('.chords').remove();
d3.json("data/m2011.json", function(matrix) {
render(matrix);
});
});
所以我要做的是删除前一个可视化的所有组和和弦,然后加载新数据。我认为这不是d3方式。
我想要做的是在可视化之间添加某种过渡。 我已经阅读了更新模式(输入,更新,退出),但不知道如何使其适应我的问题。
render
函数和所有来源都是here(它只是JavaScript)