У меня есть NSArray, который содержит большое количество объектов NSNumber (в тысячах). Я использую эти числа для построения красивого линейного графика. Проблема в том, что граф использует каждое значение, что делает график очень резким. Это становится еще хуже, чем больше значения у меня есть:Objective-C: Smooth NSArray объектов NSNumber
Я хочу, чтобы иметь возможность сделать это в более гладкий график, возможно, выбрасывая эти цифры, которые делают его зазубренным смотреть. Я хочу, чтобы выглядеть следующим образом:
Может быть, это поздно, но я не думаю о пути, чтобы сделать это. Возможно, зациклились на моих ценностях и выбрасывали некоторые из них? График не должен быть на 100% точным, он просто должен быть достойным представлением значений.
EDIT:
Вот метод, который я придумал, используя ответ jrturton в:
- (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
Он работал отлично!
Мне нравится это направление усреднения ... проверит некоторые вещи в этом направлении. –
Большое спасибо, он отлично работал. Я обновил свой ответ с помощью метода, который я написал. –