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
46 lines (38 loc) • 1.28 kB
JavaScript
var utils = require('../Utils_clust');
var draw_up_tile = require('../enter/draw_up_tile');
var draw_dn_tile = require('../enter/draw_dn_tile');
var fine_position_tile = require('../matrix/fine_position_tile');
module.exports = function resize_row_tiles(params, svg_group){
var row_nodes = params.network_data.row_nodes;
var row_nodes_names = utils.pluck(row_nodes, 'name');
svg_group.selectAll('.row')
.attr('transform', function(d){
var tmp_index = _.indexOf(row_nodes_names, d.name);
return 'translate(0,'+params.viz.y_scale(tmp_index)+')';
});
// reset tiles
svg_group.selectAll('.row')
.selectAll('.tile')
.attr('transform', function(d){
return fine_position_tile(params, d);
})
.attr('width', params.viz.rect_width)
.attr('height', params.viz.rect_height);
// reset tile_up
svg_group.selectAll('.row')
.selectAll('.tile_up')
.attr('d', function(){
return draw_up_tile(params);
})
.attr('transform', function(d) {
return fine_position_tile(params, d);
});
svg_group.selectAll('.row')
.selectAll('.tile_dn')
.attr('d', function() {
return draw_dn_tile(params);
})
.attr('transform', function(d) {
return fine_position_tile(params, d);
});
};