使用Chart.js 2.7.2,我会在过滤表格时更新单个数据集,以便在下图中显示过滤表格中显示的数据:
volumeChart = new Chart(volume, {
type: 'bar',
data: {
labels: labelList,
datasets: [{
label: 'Data',
data: volumeDataSet
}]
},
options: {
responsive: true,
maintainAspectRatio: false,
scales: {
xAxes: [{
type: 'time',
ticks: {
source: 'labels',
beginAtZero: false
},
bounds: 'labels',
time: {
unit: 'day'
},
gridLines: {
display: false
},
categoryPercentage: 0.5,
barPercentage: 0.5,
offset: true
}],
yAxes: [{
ticks: {
beginAtZero: true
}
}]
}
}
});
数据更新正常,但显示的条形宽度和间距各不相同,具体取决于数据集。
Here is how the chart displays when the data is not filtered
Here is how it displays when it is filtered
我在过滤时所做的就是从过滤结果中创建一个新的数据数组,并像这样替换数据集:
volumeChart.data.datasets[0].data = volumeDataSet;
然后像这样更新图表:
volumeChart.update();