Core Plot - 动态线图 - 画线总是从(0,0)开始
Core Plot - dynamic line graph - line drawing always starts from (0,0)
我正在使用以下内容:Core Plot 2.2、Xcode 7.3.1、iOS 8.3 和 Objective-C.
我目前能够从我的赛普拉斯 BLE 模块获取输入电压数据,并将数据点存储在 NSMutableArray *voltageData
中。我在委托方法 numberForPlot:field:recordIndex:
中将这些点用作我的 y 轴上的值。我有一个 NSTimer
对象,它触发对每 0.1 毫秒捕获一次电压数据的方法的调用。这是该方法:
// 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];
}
我的可变数组 voltageData
和 plotData
始终具有正确的值。每次图形到达数据点的末尾时,它 "restarts" 处于正确的电压值,但数据线是 "attached" 到来自原点 (0,0) 的另一条直线。想象一下这条直线画出数据线...就是它的样子。
关于正在发生的事情的想法?附带说明一下,我不会用另一点代替任何一点。我将从数组中删除所有点,并清除整个图,然后再次重新启动。
在图上调用 -reloadData
而不是 -deleteDataInIndexRange:
。这确保删除所有旧绘图数据。
我正在使用以下内容:Core Plot 2.2、Xcode 7.3.1、iOS 8.3 和 Objective-C.
我目前能够从我的赛普拉斯 BLE 模块获取输入电压数据,并将数据点存储在 NSMutableArray *voltageData
中。我在委托方法 numberForPlot:field:recordIndex:
中将这些点用作我的 y 轴上的值。我有一个 NSTimer
对象,它触发对每 0.1 毫秒捕获一次电压数据的方法的调用。这是该方法:
// 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];
}
我的可变数组 voltageData
和 plotData
始终具有正确的值。每次图形到达数据点的末尾时,它 "restarts" 处于正确的电压值,但数据线是 "attached" 到来自原点 (0,0) 的另一条直线。想象一下这条直线画出数据线...就是它的样子。
关于正在发生的事情的想法?附带说明一下,我不会用另一点代替任何一点。我将从数组中删除所有点,并清除整个图,然后再次重新启动。
在图上调用 -reloadData
而不是 -deleteDataInIndexRange:
。这确保删除所有旧绘图数据。