This block is a continuation of a previous one. The main difference resides in the version of D3 (eg. v3.5 VS v4-beta).
I was not totally satisfied of my previous block because nodes could overlap, making hovering of individual nodes possibly tedious. With the new/future release of D3 v4, this can be handled easily with the colision detection feature embeded in the new version of the force layout.
By the way, there is still some overlapping. Playing with forces' strength and/or radius/distance may help ...
https://d3js.org/d3.v4.0.0-alpha.35.min.js