Самый простой способ - просто уничтожить диаграмму (используя переменную диаграммы) и построить новую диаграмму с использованием новых данных.
Например, если вы уже построили его с помощью
...
var ctx = document.getElementById("chart").getContext("2d");
var myChart = new Chart(ctx).Bar(data);
Вы должны уничтожить его первым использованием
myChart.destroy();
, а затем сделать новую схему
myChart = new Chart(ctx).Bar(newData);
где newData
это новый объект данных.
Вы также можете обновить старый объект данных (если вы не используете его для чего-нибудь еще), вместо того, чтобы использовать новый объект, например, так
data.labels = [5, 6, 7, 8, 9];
data.datasets[0].data = [5, 6, 7, 8, 9];
myChart.destroy();
myChart = new Chart(ctx).Bar(data);
Скрипки - http://jsfiddle.net/5u3ahg7L/
(диаграмма обновляется с новыми данными после 2-секундной задержки, вам не нужна обложка setTimeout - она просто для демонстрации)
Вы также можете сделать это с использованием прототипов методов .update()
и .removeData()
(http://www.chartjs.org/docs/#line-chart-prototype-methods для методов линейных диаграмм - каждый тип имеет похожие методы), но поскольку для ваших изменений требуется удалить данные с обоих концов графика, .destroy()
будет проще ,
'var newAr = [1,2,3,4,5,6,7,8,9,10,11,12,13] .splice (4,5)' – joyBlanks
no. вы не поняли вопрос. Я имею в виду, что у меня этот массив отображается на диаграмме. и я хочу показать subarray на диаграмме. – YandraK999