Как оптимизировать отрисовку графика на canvas?
Может я чето не правильно понял, но вот мой вариант решения. Тоесть мы можем просматривать график, рисуем только его часть. Для теста также забил массив на 30к элементов, ничего не лагает все норм пробовал даже лям, впринципе любое значение будет норм так как он работает только с несколькими без перебора всего массива.
А почему канвас? На svg как правило все намного проще, особенно если нужна какая-то интерактивность. Если хочется уже готовое - смотреть в сторону того, что посоветовал JRK_DV, если хочется писать свое - то d3.js