На D3 можно, но там большая часть методов для преобразования данных, при желании можно конечно, но их api сложно назвать понятным и адекватным, щас обычная практика когда через их методы просто преобразуют данные, а рисуют уже на голом react/vue. Вот с этой штукой работать одно удовольствие -
https://svgjs.com, либо через react/vue, если у тебя много интерактива будет, то react/vue лучший вариант.