核心图 - 动态线图 - 线图总是从(0,0)开始



我正在使用以下内容:核心图2.2,xcode 7.3.1,ios 8.3和Objective-c。

我目前能够从柏树BLE模块中获取传入的电压数据,并在NSMutableArray *voltageData中储存数据点。我将这些点用作代表方法numberForPlot:field:recordIndex:中y轴上的值。我有一个NSTimer对象,该对象触发一次调用每0.1 ms捕获电压数据的方法。这是该方法:

// kMaxDataPoints = 50;
// '_real' is the voltage data of type Float32
- (void)incomingData:(nonnull NSTimer *)theTimer {
    if (self.plotData.count >= kMaxDataPoints) {
        [self.plotData removeAllObjects];
        [self.plot deleteDataInIndexRange:NSMakeRange(0, kMaxDataPoints)];
        [self.voltageData removeAllObjects];
        self.currentIndex = -1;
    }
    self.currentIndex++;
    if (self.voltageData == nil) {
        self.voltageData = [[NSMutableArray alloc] init];
    }
    [self.voltageData addObject:[NSNumber numberWithFloat:_real]];
    [self.plotData addObject:@(_real)];
    [self.plot insertDataAtIndex:(self.plotData.count - 1) numberOfRecords:1];
}

我的可变阵列voltageDataplotData始终具有正确的值。每次图表到达数据点的末端时,它都以正确的电压值"重新启动",但数据线"连接"到来自原点的另一个直线(0,0)。想象一下这条直线绘制数据线...这就是它的样子。

和关于正在发生的事情的想法?作为旁注,我没有用另一点代替任何点。我从阵列中删除所有点,然后清除整个图,然后再重新启动。

在图上而不是-deleteDataInIndexRange:上调用-reloadData。这确保所有旧的绘图数据都已删除。

最新更新