Мои первые мысли о том, что это может быть немного несоответствием. Нет причин, по которым вы не сможете использовать D3. js и canvas вместе, но я думаю, что вам будет гораздо проще работать с SVG вместо canvas с D3, плюс вы получите всевозможные преимущества с точки зрения анимации , CSS манипулирование и доступность.
Если вы хотите придерживаться холста, тогда используйте Диаграмма. js вместо D3, он предназначен для работы с холстом и представляет много более плавное обучение, являющееся более готовым решением.