1

我有一个输入数据流,我想用一个简单的直方图来绘制。我不知道值的范围,或用于直方图的正确分辨率或 bin 宽度。

SimpleHistogramDataset提供了一些这样的功能,但如果新值没有被覆盖,我不想为了添加新的 bin 来处理捕获异常。此外,它不容易让我使用不同的 bin 宽度(可能是某个初始设置宽度的整数倍)重建直方图。

有没有一种简单的方法可以使用 JFreeChart 或一些备用图表库来完成此任务,还是我必须在这里编写自己的类?

4

2 回答 2

3

在我看来,您有一个经典的MVC场景。您的图表就是视图,您的控制器将根据您的模型协调重建此视图。

因此,您应该构建模型以反映传入的数据,并且控制器将基于此重新生成图表。因此,控制器可以确定是修改现有图表,还是根据新要求完全重建它。图表实现(视图)不适合保存动态变化的数据结构本身。

于 2010-03-13T19:42:31.230 回答
2

在调用之前addObservation(),您必须验证该值是否适合某个 bin;相应地使用addBin()。重新绘制图表时,bin 将自动调整大小以填充绘图区域。如果这不是所需的行为,则可以扩展相应的XYBarRenderer 。如果必须删除垃圾箱,则必须使用removeAllBins(). 这使得Brian Agnew 的 MVC 建议更加有说服力。

作为参考,此示例显示了动态添加 XY 系列的效果。它可以让您了解更新是如何发生的。

于 2010-03-14T00:52:34.880 回答