D3 Bi-directional Drag and Zoom Tree on D3 development
This example shows how to interact with D3.js to create a Bi-Directional Tree (a variation of robschmuecker@7880033)
The tree shows the dependencies related to D3 development:
- The upward branches are the repos that D3 is dependent on, from a direct dependency to further parent files that these repos were dependent on.
- The lower branches are repos that are dependent on D3, and the children files that are dependent on these repos.
The main logic to pull these dependencies and generating tree data is in [my GitHub repo] (https://github.com/shunpochang/d3tree/tree/master/get_tree_from_git), where package.json and bower.json files (to include both NPM and Bower installation) are crawled to get the top matching libraries.
Tree interaction and display:
- To quickly unfold all branches, click on the label "Click to unfold/expand all" twice to first collapse and then expand, and refresh the browser if it does not work properly.
- Each node text will inlcude the repo's full path followed by the repo's created year in the parenthesis.
- If a repo has occurred already at an earlier depth level (meaning closer to origin), the text "Recurring" will be in the node name and the node stroke will be thickened to indicate that the node has already appeared and will thus have no future generations.
- Zooming is only activated by mouse scrolling, and right-click is deactivated for dragging.
For any help/questions, shunpochang at gmail or tag me @shunpochang.