新数据不显示图表 js
New datases do not shows Chart js
使用折线图js。
需要制作 show/hide 个数据集
的复选框
我做了这样的东西:
lineChartData = {
labels : ["01.01.2015","012.01.2015","03.01.2015","04.01.2015","05.01.2015","06.01.2015","07.01.2015"],
datasets : dataSets
};
其中 dataSets 是数据集对象的数组,当复选框更改时我执行下一步:
if($(this).prop('checked')){
myNewChart.datasets[datasetId] = dataSets[datasetId];
}
else{
myNewChart.datasets[datasetId]= {};
}
myNewChart.update();
myNewChart.datasets[datasetId]= {};工作并删除图表上的线,但添加数据集不显示线,但它添加在 myNewChart.datasets 数组中。
只需销毁并重新绘制图表即可。虽然 Chart.js 确实支持添加和删除线点 - 它是按标签(而不是按数据集 - 这是你想要的)
你的问题是你正在清空实际的数据集对象 - 如果你 link 它到数据集的副本一切正常。
这是您更新的更改处理程序
$('input:checkbox').change(function () {
var chartId = $(this).attr('data-chart-id');
var datasetId = $(this).attr('data-data-set');
dataSets[datasetId].hide = !$(this).prop('checked')
lineChartData.datasets = []
dataSets.forEach(function (dataset) {
// create a copy of the dataset to modify (if required) and put into the chart dataset array
var copy = jQuery.extend(true, {}, dataset)
if (dataset.hide)
copy.data = []
lineChartData.datasets.push(copy)
})
// create the graph from scratch
myNewChart.destroy()
myNewChart = new Chart(ctx).Line(lineChartData, chartOpt);
});
Fiddle - http://jsfiddle.net/6qdm7nwu/
使用折线图js。 需要制作 show/hide 个数据集
的复选框我做了这样的东西:
lineChartData = {
labels : ["01.01.2015","012.01.2015","03.01.2015","04.01.2015","05.01.2015","06.01.2015","07.01.2015"],
datasets : dataSets
};
其中 dataSets 是数据集对象的数组,当复选框更改时我执行下一步:
if($(this).prop('checked')){
myNewChart.datasets[datasetId] = dataSets[datasetId];
}
else{
myNewChart.datasets[datasetId]= {};
}
myNewChart.update();
myNewChart.datasets[datasetId]= {};工作并删除图表上的线,但添加数据集不显示线,但它添加在 myNewChart.datasets 数组中。
只需销毁并重新绘制图表即可。虽然 Chart.js 确实支持添加和删除线点 - 它是按标签(而不是按数据集 - 这是你想要的)
你的问题是你正在清空实际的数据集对象 - 如果你 link 它到数据集的副本一切正常。
这是您更新的更改处理程序
$('input:checkbox').change(function () {
var chartId = $(this).attr('data-chart-id');
var datasetId = $(this).attr('data-data-set');
dataSets[datasetId].hide = !$(this).prop('checked')
lineChartData.datasets = []
dataSets.forEach(function (dataset) {
// create a copy of the dataset to modify (if required) and put into the chart dataset array
var copy = jQuery.extend(true, {}, dataset)
if (dataset.hide)
copy.data = []
lineChartData.datasets.push(copy)
})
// create the graph from scratch
myNewChart.destroy()
myNewChart = new Chart(ctx).Line(lineChartData, chartOpt);
});
Fiddle - http://jsfiddle.net/6qdm7nwu/