gpt4 book ai didi

java - JChart2D 性能

转载 作者:太空宇宙 更新时间:2023-11-04 14:47:24 24 4
gpt4 key购买 nike

我正在绘制最多 16 条轨迹,每条轨迹有 300 个数据点,我每 100 毫秒连续更新 100 个数据点。因此,平均而言,我每 100 毫秒更新总共 1600 个数据点,这已经达到了我可以实时绘制的点的限制。有什么办法可以进一步提高绘图速度,或者点数确实达到了 JChart2D 所能达到的极限。

请注意,对于实时应用程序,JChart2D 比其他库(如 JFreeChart)要好得多。 JFreeChart 具有强大的功能,但对于实时性来说相当繁重。

每当 Swing Worker 收到数据已添加的通知时,我实际使用的循环如下:

            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];

最佳答案

除了 addPoint 行,您可以这样做吗?不过我可能是错的..

                    datapoint = (float)(sixteenBitNumber[signalnodes[o][p].signalIndex + NbOfSampledSignal*k])*10/32767;                               
//trace[o][p].addPoint(seriesindex[o][p], datapoint);
avgX[o][p]+=seriesindex[o][p]; //Accumulate
avgY[o][p]+=datapoint; //Accumulate
avgCounter[o][p]++; //Keep track
if(avgCounter[o][p]==10){ //Done accumulating... plot average
trace[o][p].addPoint(avgX[o][p]/10, avgY[o][p]/10); //Add average point
avgCounter[o][p]=0; //Clear data
avgX[o][p]=0; //Clear data
avgY[o][p]=0; //Clear data
}
seriesindex[o][p] = seriesindex[o][p] + ScreenPointJump;//seriesindex[o][p]++;
}
}
}

}

关于java - JChart2D 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24244037/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com