Переход D3 и обновление на диаграмме аккордов

Я использую хордовую диаграмму 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 и весь исходный код находятся здесь (это просто JavaScript)


person Marcos    schedule 15.06.2013    source источник
comment
@LarsKotthoff как ты это нашел? :) Большое спасибо.   -  person Marcos    schedule 15.06.2013
comment
Это связано на странице примеров D3.   -  person Lars Kotthoff    schedule 15.06.2013
comment
В связи с этим: stackoverflow.com/questions/21813723/   -  person Envil    schedule 27.03.2017