@Vlad_isLove

Как использовать 1 контекст canvas для нескольких графиков в Chart.js?

Нужно использовать 1 canvas для отрисовки 3-х разных графиков, но не все одновременно, а при нажатии на кнопку. При нажатии кнопок график перерисовывается, но может отображается не правильно, в неправильном масштабе или могут мерцать предыдущие отрисованые графики. Почему так происходи? Потому, что один контекст для всех? Но перед отрисовкой в updCharts я очищаю график. Как исправить?
<canvas id="chart"></canvas>
<button id="1"></button>1<button id="2">2</button><button id="3">3</button>

var chart = new Chart('chart', /*параметры*/);
            var charts = {
                0: chart.config,
                1: chart.config,
                2: chart.config
            };

             //при нажатии кнопки 1:
             charts[0].data.datasets[0].label = $(table).find('th').eq(colNum).text();
             charts[0].data.labels = labels;
             charts[0].data.datasets[0].data = values;
             charts[0].data.datasets[0].backgroundColor = '#fff';
             updChart(0);

            function updChart (i) {
                chart.destroy();
                chart.config= charts[i];
                chart.update();
            }
  • Вопрос задан
  • 42 просмотра
Пригласить эксперта
Ответы на вопрос 1
0xD34F
@0xD34F Куратор тега JavaScript
chart.destroy();
chart.config= charts[i];
chart.update();

Это безумие. Вы уничтожили график, и тут же пытаетесь что-то ещё с ним делать.
Труп насиловать не надо, создавайте новый график: chart = new Chart('chart', charts[i]);.

UPD. Например.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Александрия Москва
от 200 000 до 250 000 руб.
Foodtronics Москва
от 100 000 до 200 000 руб.
Алгоритмика Москва
от 120 000 до 200 000 руб.
21 авг. 2019, в 14:20
15000 руб./за проект
21 авг. 2019, в 13:40
25000 руб./за проект