我使用[thePlot5 insertDataAtIndex:i numberOfRecords:150];
将数据插入到实时图表中。该图表包含近10000个数据点(我在该图中需要10000点)。
但我每次都要更新150个数据点。
但-(NSUInteger)numberOfRecordsForPlot:(CPTPlot *)plot
方法每次都返回10000。因此-(double)doubleForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)idx
中的迭代次数将是x和y的2万次。这会降低性能。
我只想更新新点(即150点不是全10000点)。请帮助我们。
答案 0 :(得分:1)
The -insertDataAtIndex:numberOfRecords:
method tells the plot to load only the new data points. In the example given in the question, the plot should ask the datasource for 150 new points, starting at data index i
. Note that after the insert call, -numberOfRecordsForPlot:
should return the old value plus the number of new records (10000 + 150 = 10150). If you want to keep the total number of points constant, you'll need to remove some old points with -deleteDataInIndexRange:
.