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

60 lines (44 loc) 1.99 kB
var make_dendro_triangles = require('./make_dendro_triangles'); module.exports = function make_col_dendro(cgm) { var params = cgm.params; // position col_dendro_outer_container var x_offset = params.viz.clust.margin.left; var y_offset = params.viz.clust.margin.top + params.viz.clust.dim.height; var spillover_height = params.viz.dendro_room.col + params.viz.uni_margin; // make or reuse outer container if (d3.select(params.root+' .col_dendro_outer_container').empty()){ d3.select(params.root+' .viz_svg') .append('g') .attr('class', 'col_dendro_outer_container') .attr('transform', 'translate('+x_offset+','+y_offset+')'); d3.select(params.root+' .col_dendro_outer_container') .append('rect') .classed('col_dendro_spillover',true) .attr('fill', params.viz.background_color) .attr('width', params.viz.svg_dim.width) .attr('height', spillover_height+'px'); d3.select(params.root+' .col_dendro_outer_container') .append('g') .attr('class', 'col_dendro_container') .attr('transform', 'translate(0,'+params.viz.uni_margin/2+')'); d3.select(params.root+' .col_dendro_outer_container') .append('rect') .classed('col_dendro_spillover_top',true) .attr('fill', params.viz.background_color) .attr('width', params.viz.svg_dim.width) .attr('height', params.viz.svg_dim.height) .attr('transform', 'translate(0,'+params.viz.dendro_room.col+')'); } else { d3.select(params.root+' .viz_svg') .select('col_dendro_outer_container') .attr('transform', 'translate('+x_offset+','+y_offset+')'); d3.select(params.root+' .col_dendro_outer_container') .select('.col_dendro_spillover') .attr('width', params.viz.svg_dim.width) .attr('height', spillover_height+'px'); } make_dendro_triangles(cgm, 'col', false); if (params.viz.inst_order.row != 'clust'){ d3.selectAll(params.root+' .col_dendro_group').remove(); } };