У меня есть NSArray, который содержит большое количество объектов NSNumber (тысячи).Я использую эти числа, чтобы построить хороший линейный график.Проблема в том, что график использует каждое значение, что делает график очень резким.Это становится еще хуже, чем больше у меня значений:
Я хочу иметь возможность сделать это в более гладкий график, возможно, выбрасывая те числа, которые делают его неровным.Я хочу, чтобы это выглядело так:
Возможно, уже поздно, но я не думаю о способе сделать это.Возможно, просматривая мои ценности и выбрасывая некоторые из них?График не должен быть точным на 100%, он просто должен быть достойным представлением значений.
РЕДАКТИРОВАТЬ:
Вот метод, который япридумал, используя ответ Джртуртона:
- (NSArray *)smoothedArray:(NSArray *)items {
int average = 0;
int i = 0;
int numberToAverageBy = 10;
NSMutableArray *newItems = [[[NSMutableArray alloc] init] autorelease];
// Loop
for (NSNumber *elevation in items) {
average += [elevation intValue];
i++;
if (i == numberToAverageBy) {
[newItems addObject:[NSNumber numberWithInt:average/numberToAverageBy]];
i = 0;
average = 0;
}//end
}//end for
return [NSArray arrayWithArray:newItems];
}//end
Работало отлично!