@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();
            }
  • Вопрос задан
  • 90 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
chart.destroy();
chart.config= charts[i];
chart.update();

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

UPD. Например.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Stream Labs Москва
До 150 000 ₽
Myagi Минск
от 3 000 до 4 000 $
Salesbeat Москва
от 150 000 до 250 000 ₽
19 февр. 2020, в 04:53
2000 руб./за проект
19 февр. 2020, в 02:24
500 руб./за проект
18 февр. 2020, в 23:53
8000 руб./за проект