Насколько я знаю, стандартные диаграммы будут отображать только то, что вы им даете, поэтому вам нужно будет создать нового поставщика данных, который будет содержать среднее / сумму данных для каждой возрастной группы.
Чтобы сделать производного поставщика, который остается в курсе изменений в GraphArray, вы можете либо добавить прослушиватели в GraphArray, либо, если GraphArray только установлен и не изменен, вы можете избежать разбиения переменной на методы получения и установкичто-то вроде этого (непроверенного) кода:
Если у вас было
[Bindable]
public var GraphArray:ArrayCollection;
Замените его на
private var _GraphArray:ArrayCollection;
[Bindable]
private var DerivedGraphArray:ArrayCollection;
[Bindable]
public function get GraphArray():ArrayCollection
{
return _GraphArray;
}
public function set GraphArray(value:ArrayCollection):void
{
var ageBucketedArray:Array = new Array(121);
var ageBucketedCountsArray:Array = new Array(121);
//Compute salary sums
for each (var o:Object in value)
{
if (ageBucketedArray[o["age"]])
{
ageBucketedArray[o["age"]] += o["salary"];
ageBucketedCountsArray[o["age"]] += 1;
}
else
{
ageBucketedArray[o["age"]] = o["salary"];
ageBucketedCountsArray[o["age"]] = 1;
}
}
//Compute averages
for (var age:int = 0; age < ageBucketedArray.length; age++)
{
if (ageBucketedArray[age])
{
ageBucketedArray[age] /= ageBucketedCountsArray[age];
}
else
{
ageBucketedArray[age] = 0;
}
}
_GraphArray.removeAll();
_GraphArray.addAll(value);
DerivedGraphArray = new ArrayCollection(ageBucketedArray);
}