UNPKG

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

51 lines (38 loc) 1.45 kB
module.exports = function(old_params, params) { // exit, update, enter // check if exit or enter or both are required var old_row_nodes = old_params.network_data.row_nodes; var old_col_nodes = old_params.network_data.col_nodes; var old_row = _.map(old_row_nodes, function(d){return d.name;}); var old_col = _.map(old_col_nodes, function(d){return d.name;}); var all_old_nodes = old_row.concat(old_col); var row_nodes = params.network_data.row_nodes; var col_nodes = params.network_data.col_nodes; var row = _.map(row_nodes, function(d){return d.name;}); var col = _.map(col_nodes, function(d){return d.name;}); var all_nodes = row.concat(col); var exit_nodes = _.difference( all_old_nodes, all_nodes ).length; var enter_nodes = _.difference( all_nodes, all_old_nodes ).length; var delays = {}; if (exit_nodes > 0){ delays.update = 1000; } else { delays.update = 0; } if (enter_nodes > 0){ delays.enter = 1000; } else { delays.enter = 0; } delays.enter = delays.enter + delays.update ; delays.run_transition = true; var old_num_links = old_params.network_data.links.length; var new_num_links = params.network_data.links.length; var cutoff_num_links = 0.5*params.matrix.def_large_matrix; if ( old_num_links > cutoff_num_links || new_num_links > cutoff_num_links ){ delays.run_transition = false; delays.update = 0; delays.enter = 0; } return delays; };