2015-08-28 2 views
0

Например, у меня есть массив [1,2,3,4,5,6,7,8,9,10,11,12,13], и я хочу только отобразить подмассиву [5,6,7,8,9].Установить массив, который будет отображаться на диаграмме js

Возможно ли это, используя библиотеку Chart.js?

EDIT: В первую очередь я показываю полный массив на диаграмме. После нажатия кнопки у меня появится подмассив. Любые идеи сделать это?

+1

'var newAr = [1,2,3,4,5,6,7,8,9,10,11,12,13] .splice (4,5)' – joyBlanks

+0

no. вы не поняли вопрос. Я имею в виду, что у меня этот массив отображается на диаграмме. и я хочу показать subarray на диаграмме. – YandraK999

ответ

0

Самый простой способ - просто уничтожить диаграмму (используя переменную диаграммы) и построить новую диаграмму с использованием новых данных.

Например, если вы уже построили его с помощью

... 
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() будет проще ,

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