我正在绘制多达 16 条迹线,每条迹线有 300 个数据点,我每 100 毫秒连续更新 100 个数据点。因此,平均而言,我每 100 毫秒更新总共 1600 个数据点,这已经达到了我可以实时绘制的点的极限。有什么方法可以提高绘图速度或点数真的达到了 JChart2D 所能达到的极限。
需要注意的是,对于实时应用程序,JChart2D 比 JFreeChart 等其他库要好得多。JFreeChart 具有强大的功能,但对于实时来说相当繁重。
每当通知摇摆工人已添加数据时,我实际使用的循环如下:
for (int l = 0; l < readcycles; l++){
sixteenBitNumber = data[l];
for (int k = 0; k < (SampledSignalPerPacket); k+=ScreenPointJump){
for (int o = 0; o < root.getChildCount(); o++){
for (int p = 0; p < graphnodes[o].getChildCount(); p++){
if (seriesindex[o][p] > ScreenSize){
seriesindex[o][p] = 0;
}
datapoint = (float)(sixteenBitNumber[signalnodes[o][p].signalIndex + NbOfSampledSignal*k])*10/32767;
trace[o][p].addPoint(seriesindex[o][p], datapoint);
seriesindex[o][p] = seriesindex[o][p] + ScreenPointJump;//seriesindex[o][p]++;
}
}
}
}
其中跟踪已被初始化为
public Trace2DLtd[][] trace = new Trace2DLtd[4][4];