tripcollor: оставляете один свг, в нем у вас есть куча "..." на них навесите классы phase-1, phase-2 и тд. в стилях на эти классы animation-delay с opacity выставите
tialastea: Огромный плюс - это производительность WebGL, потому что svg захлебывается на очень больших данных. У нас на проекте всё-таки используется highstock
Посмотрел пример хайстока, он использует подгрузку данных, и одновременно он не показывает больше 250 точек. Технически он может показывать более 1000 точек одновременно, но начинает тормозить при инициализации. Но мне кажется даже передать на клиент 100к точек будет затратно, поэтому следует использовать пэджинг
Valeriy Donika: возможно у вас category.products назначается после инициализации productList, например в categoryList. Если так, то вам стоит инициализировать уже в $onChange