I'm using ShinobiChart
to draw candlestick stock chart.
My data is discontinuous, so that there will gaps on chart.
Anybody knows how can I make it show continuously? Cannot find it in documentation...
Ok, I have found it. For your reference:
Instead of adding SChartDateTimeAxis
you instead should add SChartDiscontiniousDateTimeAxis
.
Then for any gap in dataSeries you have to explicitly exclude time period with addExcludedTimePeriod:
. (You can do it my checking whether next day is the same a next date in the dataSeries).
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;