首頁 >Java >java教程 >如何在沒有基於時間的軸的情況下對動態 JFreeChart 系列更新進行故障排除?

如何在沒有基於時間的軸的情況下對動態 JFreeChart 系列更新進行故障排除?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-16 11:41:11865瀏覽

How to Troubleshoot Dynamic JFreeChart Series Updates Without a Time-Based Axis?

使用JFreeChart 更改系列時排除隨機錯誤

簡介
此討論解決時遇到的問題透過新增和刪除系列來動態更新JFreeChart 資料集。目標是可視化隨時間變化的資料點,而不依賴基於時間的 X 軸或使用 DynamicTimeSeriesCollection。

問題和解決方案

提供的程式碼嘗試透過重複新增和刪除一系列來更新資料集,但這種方法是不正確的。相反,應該在 SwingWorker 的 process() 方法中更新資料集。

此外,要建立具有基於迭代計數而不是時間的域的圖表,請使用 NumberAxis 而不是 DateAxis。

範例程式碼

以下程式碼片段示範如何使用一行追蹤計算進度圖表:

private XYSeries series = new XYSeries("Result");
…
@Override
protected void process(List<Double> chunks) {
    for (double d : chunks) {
        label.setText(df.format(d));
        series.add(++n, d);
    }
}

圖表將隨著計算的進行自動更新。

其他注意事項

  • 正確同步: 資料集只能透過SwingWorker 的process() 方法進行修改,以確保執行緒安全性。
  • NumberAxis: 使用具有非基於時間的 X 軸的折線圖時,對域和範圍使用 NumberAxis。
  • 形狀可見性: 將渲染器的形狀可見性設為true,以將資料點顯示為圓形
  • 進度條:使用進度條提供有關計算進度的視覺回饋。

以上是如何在沒有基於時間的軸的情況下對動態 JFreeChart 系列更新進行故障排除?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn