2014-12-16 8 views
4

Замена диаграммы наборов данных с d3.js/c3.js

DEMO HERE

В демке я пытаюсь выгрузить все текущие наборы данных и загрузить новые, как это:

Использование C3.js

chart.unload(); 
chart.load({ 
    columns: [ 
     ['data1', 130, 120, 150, 140, 160], 
     ['data2', 30, 20, 50, 40, 60, 50], 
    ], 
}); 

Это, очевидно, не правильный способ обработки этого процесса, как показывает демонстрация, это работает неправильно.

Учебник C3 утверждает, что наборы данных должны быть заменены, как это:

chart.load({ 
    columns: [ 
     ['data1', 130, 120, 150, 140, 160], 
     ['data2', 30, 20, 50, 40, 60, 50], 
    ], 
    unload: ['data3', 'data4', 'data5'], 
}); 

Опять пример показывает, что это работает правильно, однако ...

ВОПРОС

Как я могу выгрузить ВСЕ Текущие наборы данных и заменить их новыми без указания их индивидуальных данных (data3, data4) и т.д.?

Примечание: Наборы данных являются переменными по имени и количеству, поэтому я просто хочу разгрузить ВСЕ.

В целом все, что я хочу сделать, это заменить наборы данных новыми при щелчке.

ответ

9

Я не знаю, может ли это быть полезным для вас, в прошлом я использовал это (выгружаем в ту же функцию нагрузки). Для вашего кода он должен быть

chart.load({ 
    columns: [ 
      ['data1', 130, 120, 150, 140, 160, 150], 
      ['data4', 30, 20, 50, 40, 60, 50], 
     ], 
    unload: chart.columns, 
}); 

fiddle работает

$('#A').on('click', function() { 

    chart.load({ 
     columns: [ 
      ['data1', 130, 120, 150, 140, 160, 150], 
      ['data4', 30, 20, 50, 40, 60, 50], 
     ], 
      unload: chart.columns, 
    }); 
}); 

$('#B').on('click', function() { 
    chart.load({ 
     columns: [ 
      ['data1', 130, 120, 150, 140, 160, 150], 
      ['data4', 30, 20, 50, 40, 60, 50], 
     ], 
     unload: chart.columns, 
    }); 
}); 
+0

Спасибо за ваш вклад, но это Рекомендован способ сделать это, как я уже упоминал выше. Мне нужно иметь возможность выгружать все наборы данных без указания их имен. – Obsidian

+0

@Obsidian Я обновил свой ответ. Это то, что вы искали? – faby

+0

Ты, мужчина! : D – Obsidian

Смежные вопросы