gmo*_*ojo 2 javascript jquery chart.js
我正在尝试使用chart.js构建动态图表,但是我无法弄清楚如何在单击按钮时交换数据集。这里的一些答案建议在版本2中使用update()和destroy(),但它们对我没有用。我可以销毁数据,但不能用正确的数据集绘制新图表。这是下面的jsfiddle和代码:
HTML:
<canvas id="forecast" width="300" height="150"></canvas>
<button id="0" type="button" >Dataset 1</button>
<button id="1" type="button" >Dataset 2</button>
Run Code Online (Sandbox Code Playgroud)
JavaScript:
var chart_labels = ['06:00', '09:00', '12:00', '15:00', '18:00', '21:00'];
var temp_dataset = ['1', '8', '10', '10', '9', '7'];
var rain_dataset = ['0', '0', '6', '32', '7', '2'];
var ctx = document.getElementById("forecast").getContext('2d');
var config = {
type: 'bar',
data: {
labels: chart_labels,
datasets: [
{
type: 'line',
label: "Temperature (Celsius)",
yAxisID: "y-axis-0",
fill: false,
data: temp_dataset,
},
{
type: 'bar',
label: "Precipitation (%)",
yAxisID: "y-axis-1",
data: rain_dataset,
}]
},
options: {
scales: {
yAxes: [{
position: "left",
"id": "y-axis-0",
}, {
position: "right",
"id": "y-axis-1",
}]
}
}
};
var forecast_chart = new Chart(ctx, config);
$("#1").click(function (){
var chart_labels = ['00:00', '03:00', '06:00', '09:00', '12:00', '15:00', '18:00', '21:00'];
var temp_dataset = ['5', '3', '4', '8', '10', '11', '10', '9'];
var rain_dataset = ['0', '0', '1', '4', '19', '19', '7', '2'];
forecast_chart.destroy();
forecast_chart = new Chart(ctx, config);
});
Run Code Online (Sandbox Code Playgroud)
编辑*我应该补充一下,初始值应随页面加载,button2上的第二个值单击,button1上的原始值单击
可以通过替换按钮单击上的dataand labels数组来实现...
$("#0").click(function() {
var data = forecast_chart.config.data;
data.datasets[0].data = temp_dataset;
data.datasets[1].data = rain_dataset;
data.labels = chart_labels;
forecast_chart.update();
});
$("#1").click(function() {
var chart_labels = ['00:00', '03:00', '06:00', '09:00', '12:00', '15:00', '18:00', '21:00'];
var temp_dataset = ['5', '3', '4', '8', '10', '11', '10', '9'];
var rain_dataset = ['0', '0', '1', '4', '19', '19', '7', '2'];
var data = forecast_chart.config.data;
data.datasets[0].data = temp_dataset;
data.datasets[1].data = rain_dataset;
data.labels = chart_labels;
forecast_chart.update();
});
Run Code Online (Sandbox Code Playgroud)
这是工作的小提琴
| 归档时间: |
|
| 查看次数: |
8495 次 |
| 最近记录: |