Highcharts 官方範例多為靜態數據,實際專案常需透過 AJAX 取得動態數據並更新圖表,且 X 軸分類需隨查詢條件(年/月)變化。
原始碼在 AJAX 回調外建立圖表,導致 inc 變數尚未賦值即傳入 series.data,顯示空白。
$.ajax({
url: '...',
success: function(data) {
var inc = processData(data); // 轉換為 Highcharts 格式
chart = Highcharts.chart('container-company', {
// ... 其他選項
series: [{ data: inc }]
});
}
});
// 先建立空圖表
chart = Highcharts.chart('container', { series: [{ data: [] }] });
// 異步取得數據後
chart.series[0].setData(inc, true); // true 觸發重繪
// 若 X 軸分類也變更
chart.xAxis[0].setCategories(newCategories);
使用 chart.xAxis[0].setCategories(categories) 更新分類,配合 series.setData 更新數據,實現無縫切換。注意數據長度需與分類數一致。