Skip to content

Commit

Permalink
compute order the first time it is selecte
Browse files Browse the repository at this point in the history
  • Loading branch information
jdfekete committed Apr 21, 2015
1 parent 4bb92e4 commit 543f721
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 34 deletions.
73 changes: 41 additions & 32 deletions examples/matrix.js
Original file line number Diff line number Diff line change
Expand Up @@ -38,42 +38,46 @@ function matrix(json) {
return row.map(function(c) { return c.z; });
});

//var leafOrder = d3.range(n);
var leafOrder = reorder.leafOrder()
.distance(science.stats.distance.manhattan)(adjacency);

leafOrder.forEach(function(lo, i) {
nodes[i].leafOrder = lo;
});

var graph = reorder.graph()
.nodes(json.nodes)
.links(json.links).init(),
barycenter = reorder.barycenter(graph);

barycenter[0].forEach(function(lo, i) {
nodes[i].barycenter = lo;
});

var rcm = reorder.reverse_cuthill_mckee(graph);
rcm.forEach(function(lo, i) {
nodes[i].rcm = lo;
});


.links(json.links).init();

// Precompute the orders.
var orders = {
name: d3.range(n).sort(function(a, b) { return d3.ascending(nodes[a].name, nodes[b].name); }),
count: d3.range(n).sort(function(a, b) { return nodes[b].count - nodes[a].count; }),
group: d3.range(n).sort(function(a, b) {
var x = nodes[b].group - nodes[a].group;
return (x != 0) ? x : d3.ascending(nodes[a].name, nodes[b].name);
}),
leafOrder: nodes.map(function(n) { return n.leafOrder; }),
barycenter: nodes.map(function(n) { return n.barycenter; }),
rcm: nodes.map(function(n) { return n.rcm; }),
};
var orders = {
name: d3.range(n).sort(function(a, b) { return d3.ascending(nodes[a].name, nodes[b].name); }),
count: d3.range(n).sort(function(a, b) { return nodes[b].count - nodes[a].count; }),
group: d3.range(n).sort(function(a, b) {
var x = nodes[b].group - nodes[a].group;
return (x != 0) ? x : d3.ascending(nodes[a].name, nodes[b].name);
}),
leafOrder: function() {
var leafOrder = reorder.leafOrder()
.distance(science.stats.distance.manhattan)(adjacency);

leafOrder.forEach(function(lo, i) {
nodes[i].leafOrder = lo;
});
return nodes.map(function(n) { return n.leafOrder; });
},
barycenter: function() {
var barycenter = reorder.barycenter(graph);

barycenter[0].forEach(function(lo, i) {
nodes[i].barycenter = lo;
});

return nodes.map(function(n) { return n.barycenter; });
},
rcm: function() {
var rcm = reorder.reverse_cuthill_mckee(graph);
rcm.forEach(function(lo, i) {
nodes[i].rcm = lo;
});


return nodes.map(function(n) { return n.rcm; });
}
};

// The default sort order.
x.domain(orders.name);
Expand Down Expand Up @@ -156,6 +160,11 @@ function matrix(json) {
}

function order(value) {
var o = orders[value];

if (typeof o === "function") {
orders[value] = o.call();
}
x.domain(orders[value]);

var t = svg.transition().duration(1500);
Expand Down
4 changes: 2 additions & 2 deletions examples/saclay/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -61,11 +61,11 @@ <h1>INRIA Saclay Researchers Co-Authorship Network</h1>

<p>Distance: <select id="distance">
<option value="manhattan">Manhattan</option>
<option value="euclidean">Euclidean</option>
<option value="euclidean" selected="true">Euclidean</option>
<option value="chebyshev">Chebyshev</option>
<option value="hamming">Hamming</option>
<option value="jaccard">Jaccard</option>
<option value="braycurtis" selected="true">Braycurtis</option>
<option value="braycurtis">Braycurtis</option>
</select>

<p>This matrix diagram visualizes researchers co-authorship at <a href="www.inria.fr">INRIA</a> <a href="http://www.inria.fr/centre/saclay">Saclay</a>.
Expand Down

0 comments on commit 543f721

Please sign in to comment.