Вообще рисование линий обычно делается через изменение свойств stroke-dasharray и stroke-dashoffset у кривых в SVG. Это самый простой способ в рамках фронтенда, хотя и изначально эти вещи были для другого придуманы. Но в случае с ЭКГ нужна постоянная скорость рисования по горизонтали. Поэтому можно взять прямоугольную маску в рамках той же SVG, и двигать ее в сторону:
RAX7, добавить можно, но автор вопроса ничего не говорил про логику запуска анимации. Должна она быть бесконечной, или должна запускаться по событию один раз, или еще как-то. Поэтому в примере стандартная логика для таких анимаций - запустить один раз, из js, условно по наступившему событию. Перезапускается она чисто для эстетической красоты примера, чтобы кнопку rerun не нажимать.