实时数据可视化与持久化存储
1. 实时数据展示
在很多情况下,我们需要实时展示数据流。与将数据收集到 Java 或 Jython 数组等容器中,然后使用 draw(obj)
方法一次性绘制数据不同,我们可以在不等待所有数据集可用的情况下,绘制部分数据样本,并更新数据持有者以用于绘图。
以下是使用 Jython 的 sleep()
函数来填充直方图并实时更新绘图的示例:
from java.awt import Color
from java.util import Random
from jhplot import *
c1 = HPlot('Canvas')
c1.setGTitle('data stream')
c1.visible()
c1.setLegend(1)
c1.setAutoRange()
h1 = H1D('Updated histogram', 20, -2.0, 2.0)
h1.setFill(1)
h1.setErrX(0)
h1.setErrY(1)
h1.setFillColor(Color.blue)
h1.setColor(Color.blue)
r = Random()
import time
for i in range(1000):
h1.fill(r.nextGaussian())
time.sleep(1)
c1.clearData()
c1.draw(h1)
c1.drawStatBox(h1)
time.sleep(2)
c1.draw(h1)