Все зависит от сложности графика. Если что-то простое, то можно достаточно быстро разобраться потому что есть много примеров и
https://observablehq.com/ от Майка Бостока.
Но если много кастомной логики, то тут начинаются сложности. Постоянный контроль листенеров, создание нод и так далее. Плюс поддержка, не каждый разработчик сразу поймет, что там происходит.
Так что скажу так - если нужен простой график, то лучше брать готовую библиотеку. Если подразумевается график с множеством кастомной логики, то можно брать d3.js, но сразу обращать внимание на архитектуру, потому что все очень быстро может превратиться в лапшу.