代码之家  ›  专栏  ›  技术社区  ›  job

用JFreeChart动态构建和更新直方图

  •  1
  • job  · 技术社区  · 14 年前

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

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

    有没有一个简单的方法可以用JFreeChart或者其他的图表库来实现,或者我必须在这里编写自己的类?

    2 回复  |  直到 14 年前
        1
  •  3
  •   Brian Agnew    14 年前

    我觉得你有一个经典 MVC 脚本。图表就是视图,控制器将根据模型协调重建此视图。

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

        2
  •  2
  •   Community tomf    7 年前

    在你调用之前 addObservation() ,必须验证该值是否适合某个bin;使用 addBin() 因此。重新绘制图表时,存储箱将自动调整大小以填充绘图区域。如果这不是所需的行为,则 XYBarRenderer 可以延长。如果你必须移除垃圾箱,你必须使用 removeAllBins() . 这使得 Brian Agnew's MVC suggestion 更令人信服。

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