У меня возникла проблема с построением данных с использованием структуры CorePlot. У меня есть integrated it, и ниже есть образец моего кода из проекта, над которым я работаю: живой разброс диаграммы .Проблема С построением графика, если источник данных с одинаковыми данными
Если мои источники данных имеют одинаковые значения, тогда график не отображается.
Это код для построения точек:
#pragma mark - CPTPlotDataSource methods
-(NSUInteger)numberOfRecordsForPlot:(CPTPlot *)plot {
return [appDelegate.arrayLiveValues count];
}
-(NSNumber *)numberForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum
recordIndex:(NSUInteger)index
{
NSInteger valueCount = [appDelegate.arrayLiveValues count];
switch (fieldEnum) {
case CPTScatterPlotFieldX:
if (index < valueCount) {
return [NSNumber numberWithUnsignedInteger:index];
}
break;
case CPTScatterPlotFieldY:
return [appDelegate.arrayLiveValues objectAtIndex:index];
break;
}
return [NSDecimalNumber zero];
}
Если appDelegate.arrayLiveValues
массив содержит повторяющиеся значения, то это не зарисовки. Если у него разные значения, это график графика, основанный на значениях в datasource
, то есть appDelegate.arrayLiveValues
устанавливается уровень масштабирования графика. Я хочу знать, что внутренняя функциональность
-(NSNumber *)numberForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)index method;
Предполагая, что 'arrayLiveValues' представляет собой массив чисел, это выглядит отлично. Как вы масштабируете пространство сюжета? –
, если массив содержит то же число, что и каждый объект, а затем не строит. по следующему методу его наборы масштаба я думаю. [plotSpace scaleToFitPlots: [NSArray arrayWithObjects: aaplPlot, nil]]; – Srinivas
Если все точки данных точно совпадают, диапазоны графиков будут иметь нулевую длину. Вам нужно будет проверить «xRange» и «yRange» после масштабирования диапазонов и настроить их по мере необходимости, чтобы ваши данные оставались видимыми во всех ситуациях. –