首页 >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