circles = slicedMonthlyData
.sort((a, b) => {
return +b['30DayActiveHH'] - +a['30DayActiveHH'];
})
.map((c, i) => {
const metricRaw = +c['30DayActiveHH'];
const metricNormal = metricNormalize(metricRaw);
const loc = projection([c.longitude, c.latitude]);
const [x, y] = loc;
let start = Math.round(
(i * (ticks.length - 50)) / slicedMonthlyData.length
);
return {
...c,
x,
y,
metricRaw,
metricNormal,
frames: keyframe([
[0, 0],
[start, 0.25],
[start + 10, metricNormal * 0.5],
[start + 50, metricNormal * 1],
[240, metricNormal * 1]
]),
colorFrames: keyframe([
[0, metricNormal * 0.25],
[start, metricNormal * 0.5],
[start + 10, metricNormal * 0.8],
[start + 50, metricNormal * 1],
[240, metricNormal * 1]
])
};
})