clustergrammer
Version:
This is a clustergram implemented in D3.js. I started from the example http://bost.ocks.org/mike/miserables/ and added the following features
91 lines (78 loc) • 2.39 kB
JavaScript
module.exports = function exit_components(params, delays, duration){
var row_nodes = params.network_data.row_nodes;
var col_nodes = params.network_data.col_nodes;
// remove entire rows
var exiting_rows = d3.select(params.root+' .clust_group')
.selectAll('.row')
.data(params.matrix.matrix, function(d){return d.name;})
.exit();
if (delays.run_transition){
exiting_rows
.transition().duration(duration)
.style('opacity',0)
.remove();
} else {
exiting_rows
.style('opacity',0)
.remove();
}
// remove row labels
d3.selectAll(params.root+' .row_label_group')
.data(row_nodes, function(d){ return d.name;})
.exit()
.transition().duration(duration)
.style('opacity',0)
.remove();
// remove column labels
d3.selectAll(params.root+' .col_label_group')
.data(col_nodes, function(d){return d.name;})
.exit()
.transition().duration(duration)
.style('opacity',0)
.remove();
// remove row triangles and colorbars
d3.selectAll(params.root+' .row_cat_group')
.data(row_nodes, function(d){return d.name;})
.exit()
.transition().duration(duration)
.style('opacity',0)
.remove();
// remove row triangles and colorbars
d3.selectAll(params.root+' .row_dendro_group')
.data(row_nodes, function(d){return d.name;})
.exit()
.transition().duration(duration)
.style('opacity',0)
.remove();
d3.selectAll(params.root+' .col_label_text')
.data(col_nodes, function(d){return d.name;})
.exit()
.transition().duration(duration)
.style('opacity',0)
.remove();
d3.selectAll(params.root+' .horz_lines')
.data(row_nodes, function(d){return d.name;})
.exit()
.transition().duration(duration)
.style('opacity',0)
.remove();
d3.selectAll(params.root+' .vert_lines')
.data(col_nodes, function(d){return d.name;})
.exit()
.transition().duration(duration)
.style('opacity',0)
.remove();
// remove dendrogram
d3.selectAll(params.root+' .col_cat_group')
.data(col_nodes, function(d){return d.name;})
.exit()
.transition().duration(duration)
.style('opacity',0)
.remove();
d3.selectAll(params.root+' .col_dendro_group')
.data(col_nodes, function(d){return d.name;})
.exit()
.transition().duration(duration)
.style('opacity',0)
.remove();
};