iOS: Shinobi Chart: 不连续数据的连续显示
iOS: ShinobiChart: Continious display for discontinuous data
我正在使用 ShinobiChart
绘制烛台股票图表。
我的数据是不连续的,所以图表上会有空隙。
有人知道我怎样才能让它连续显示吗?在文档中找不到它...
好的,我找到了。供你参考:
您应该添加 SChartDiscontiniousDateTimeAxis
而不是添加 SChartDateTimeAxis
。
然后对于数据系列中的任何间隙,您必须使用 addExcludedTimePeriod:
明确排除时间段。 (您可以检查第二天是否与数据系列中的下一个日期相同)。
SChartDiscontinuousDateTimeAxis *xAxis = [[SChartDiscontinuousDateTimeAxis alloc] init];
for (NSUInteger iter = 0; iter < self.quotes.count - 1; iter++) {
NSDate* thisDate = ((TBHistoricQuote*)self.quotes[iter]).date;
NSDate* nextDate = [[NSCalendar currentCalendar] dateByAddingUnit:NSCalendarUnitDay
value:1
toDate:thisDate
options:0];
NSDate* nextSeriesElementDate = ((TBHistoricQuote*)self.quotes[iter+1]).date;
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
if ([nextDate compare:nextSeriesElementDate] == NSOrderedAscending ) {
NSDateComponents *components = [calendar components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay
fromDate:nextDate
toDate:nextSeriesElementDate
options:0];
[xAxis addExcludedTimePeriod:[[SChartTimePeriod alloc] initWithStart:nextDate andLength:[[SChartDateFrequency alloc] initWithDay:components.day]]];
}
}
self.chart.xAxis = xAxis;
我正在使用 ShinobiChart
绘制烛台股票图表。
我的数据是不连续的,所以图表上会有空隙。
有人知道我怎样才能让它连续显示吗?在文档中找不到它...
好的,我找到了。供你参考:
您应该添加 SChartDiscontiniousDateTimeAxis
而不是添加 SChartDateTimeAxis
。
然后对于数据系列中的任何间隙,您必须使用 addExcludedTimePeriod:
明确排除时间段。 (您可以检查第二天是否与数据系列中的下一个日期相同)。
SChartDiscontinuousDateTimeAxis *xAxis = [[SChartDiscontinuousDateTimeAxis alloc] init];
for (NSUInteger iter = 0; iter < self.quotes.count - 1; iter++) {
NSDate* thisDate = ((TBHistoricQuote*)self.quotes[iter]).date;
NSDate* nextDate = [[NSCalendar currentCalendar] dateByAddingUnit:NSCalendarUnitDay
value:1
toDate:thisDate
options:0];
NSDate* nextSeriesElementDate = ((TBHistoricQuote*)self.quotes[iter+1]).date;
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
if ([nextDate compare:nextSeriesElementDate] == NSOrderedAscending ) {
NSDateComponents *components = [calendar components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay
fromDate:nextDate
toDate:nextSeriesElementDate
options:0];
[xAxis addExcludedTimePeriod:[[SChartTimePeriod alloc] initWithStart:nextDate andLength:[[SChartDateFrequency alloc] initWithDay:components.day]]];
}
}
self.chart.xAxis = xAxis;