首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Highcharts 動態更新數據與 X 軸分組:AJAX 回調中重建圖表或使用 setData

     編輯:程式設計綜合問答

Highcharts 官方範例多為靜態數據,實際專案常需透過 AJAX 取得動態數據並更新圖表,且 X 軸分類需隨查詢條件(年/月)變化。

核心問題:異步導致數據未就緒

原始碼在 AJAX 回調外建立圖表,導致 inc 變數尚未賦值即傳入 series.data,顯示空白。

解法一:在 AJAX 成功回調中建立/更新圖表

$.ajax({
    url: '...',
    success: function(data) {
        var inc = processData(data); // 轉換為 Highcharts 格式
        chart = Highcharts.chart('container-company', {
            // ... 其他選項
            series: [{ data: inc }]
        });
    }
});

解法二:同步 AJAX(不推薦)或先建立空圖表再 setData

// 先建立空圖表
chart = Highcharts.chart('container', { series: [{ data: [] }] });

// 異步取得數據後
chart.series[0].setData(inc, true); // true 觸發重繪
// 若 X 軸分類也變更
chart.xAxis[0].setCategories(newCategories);

動態切換 X 軸分組(年/月)

使用 chart.xAxis[0].setCategories(categories) 更新分類,配合 series.setData 更新數據,實現無縫切換。注意數據長度需與分類數一致。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved