2

我在 JFreechart 中有一个组合图,由 4 个时间序列图表组成,具有一个共同的时域轴。

子图的数据以不同的速率到达。例如,我可能每几毫秒接收一次价格变化事件,每分钟接收一次头寸变化。我目前正在使用 XYStepRenderer 渲染这些系列以生成步骤图表。

我希望能够做这样的事情:

  • 在时间 T 收到价格点并绘制在图表上
  • 在时间 T 没有收到位置图的数据,因此我们假设该值没有改变并且呈现先前的位置值 - 即水平延伸步长线
  • 在时间 T+1 处,接收到一个位置点并绘制更改步骤图
  • 在时间 T+1 没有收到价格点,因此绘制了之前的价格

在 JFreechart 中是否有任何简单的方法可以做到这一点?目前我有一个有效的实现,但这不能处理呈现假定值。

我最初的想法是更改数据模型,以便我可以快速找到以前的值并更改调用以告诉每个子图在收到任何图的事件时进行绘制。

4

1 回答 1

3

我认为您需要缓冲传入的更改并应用规则集以将更改转发到 JFreeChart(顺便说一句,这并不真正推荐用于实时工作,但我发现它对于低频更新效果很好)。

我猜你有一个价格数据集和一个头寸数据集。您的头寸和价格更新是否带有时间戳?如果不是,您将遇到顺序接收这些并尝试将它们捆绑起来的问题(也许在某个时间窗口内到达的更新映射到同一时间?)。如果它们确实有时间戳,那么您可以在价格出现时派生一个新头寸(与旧头寸相同),然后在需要时替换它。

无论发生什么情况,我都会将图表更新与头寸/价格更新脱钩,以防万一您被头寸/价格变化所淹没。您不希望将其转化为必须立即丢弃的多个图表更新。

于 2009-07-20T14:36:25.750 回答