
The d3-mitch-tree JavaScript library lets you render an interactive diagram from JS objects/arrays to visualize the hierarchical tree structures in an elegant way.
Built with the d3.js library and supports zoom, panning, centering, and AJAX loading.
How to use it:
Load the d3-mitch-tree’s core JavaScript and Stylesheet in the document.
<script src="dist/js/d3-mitch-tree.min.js"></script> <link rel="stylesheet" href="dist/css/d3-mitch-tree.min.css">
Load the default theme in the document. You can also create your own themes just like the d3-mitch-tree-theme-default.css.
<link rel="stylesheet" href="dist/css/d3-mitch-tree-theme-default.min.css">
Define your tree data in the JavaScript objects/arrays as follows:
// flat data
var data = [
{
"id": 1,
"name": "Animals",
"type": "Root",
"description": "A living organism that feeds on organic matter"
},
{
"id": 2,
"parentId": 1,
"name": "Carnivores",
"type": "Type",
"description": "Diet consists solely of animal materials"
},
// more data here
]
// nested data
var data = {
"id": 1,
"name": "Animals",
"type": "Root",
"description": "A living organism that feeds on organic matter",
"children": [{
"id": 2,
"name": "Carnivores",
"type": "Type",
"description": "Diet consists solely of animal materials",
"children": [
{
"id": 3,
"name": "Felidae",
"type": "Family",
"description": "Also known as cats",
}]
}]
};Create a new d3.mitchTree object and set the data source.
var treePlugin = new d3.mitchTree.boxedTree()
.setData(data)Specify the container element to hold the tree structures.
var treePlugin = new d3.mitchTree.boxedTree()
.setData(data)
.setElement(document.getElementById("container-element"))Initialize the d3.mitchTree.
var treePlugin = new d3.mitchTree.boxedTree()
.setData(data)
.setElement(document.getElementById("container-element"))
.setIdAccessor(function(data) {
return data.id;
})
.setChildrenAccessor(function(data) {
return data.children;
})
.setBodyDisplayTextAccessor(function(data) {
return data.description;
})
.setTitleDisplayTextAccessor(function(data) {
return data.name;
})
.initialize();Alternative Options Object Syntax, opposed to the Fluent Interface Above.
var options = {
data: data,
element: document.getElementById("example"),
getId: function (data) {
return data.id;
},
getChildren: function (data) {
return data.children;
},
getBodyDisplayText: function (data) {
return data.description;
},
getTitleDisplayText: function (data) {
return data.name;
}
};
var treePlugin = new d3.MitchTree.BoxedTree(options).initialize();







dist folder missing in the source..please add the dis folder tooo
Hello!
You can assemble the dist folder from the source code of the examples page. Follow these steps:
1 – Open the source code of the page.
2 – Search for links that exist to the “dist” folder. It’s these 3:
http://dist%20/%20js%20/%20d3-mitch-tree.min.js
3 – Assemble the URL with the name of the server and the part of the link you obtained from the previous step. They would look like this:
https://cssscript.com/demo/visualize-hierarchical-tree-d3-mitch/dist/js/d3-mitch-tree.min.js
https://cssscript.com/demo/visualize-hierarchical-tree-d3-mitch/dist/css/d3-mitch-tree.min.css
https://cssscript.com/demo/visualize-hierarchical-tree-d3-mitch/dist/css/d3-mitch-tree-theme-default.min.css
4 – Access each URL from a browser.
5 – The code obtained, save it with the name that corresponds to each one maintaining the corresponding directory structure (dist/js for the .js files and dist/css for the .css files)
6 – Ready. You already have the “dist” folder armed with the necessary files.
I have tested this with the download of the compressed file from GitHub to which I “added” this “dist” directory and that way I got the included examples to work again.
Luck!
is there a way to dinamically edit or remove the nodes?
Hello,
Is it possible to target a particular tree field with a CSS class in order to apply a specific color?
If so, how should it be done?
Thanks in advance.