Skip to content

tue-alga/reorder.js

 
 

Repository files navigation

Simultaneous Matrix Reorderings

This repository is forked from the Reorder.js library to show examples of how existing methods can be adapted to make simultaneous reorderings. This code is referenced and used in the paper Simultaneous Matrix Orderings for Graph Collections. Nathan van Beusekom, Wouter Meulemans, Bettina Speckmann (IEEE VIS 2021, to appear).

Functionality

The application allows one to run the ten algorithms described in the paper on several datasets and examples. At the top, you can select a dataset. FLT, SCH and VIS are described in the paper. Additionally four matrices are available which are used to compare algorithms in the survey Matrix Reordering Methods for Table and Network Visualization. Michael Behrisch, Benjamin Bach, Nathalie Henry Riche, Tobias Schreck, Jean-Daniel Fekete (2016). Finally, there is an option to reproduce the example from Figure 1 of our paper.

After choosing a dataset, one of the algorithms can be chosen to run on the dataset. The algorithms are described in the paper. Some of the algorithms are only called on one timestep (Gx), which can be chosen in the top row. In case of a leaf order algorithm, the user can optionally choose to square the distances. Note that all matrices will always have the same order.

At the bottom of the page, after running an algorithm, a summary of statistics is displayed.

Below is the original README with instructions on running the example and credits to the original library.

Reorder.js (Original README)

Reorder.js is a JavaScript library for reordering matrices, i.e. either tables, graphs vertices, or parallel coordinates axes.

Want to learn more? See the wiki.

Development

To develop Reordering.js, you need to have Node.js and NPM installed. Once you have done that, run the following from the root directory of this repository to install the development dependencies:

npm install

Testing

To run the tests in the distribution, use the following command:

npm run test

Examples

To run the examples, use the following command:

npm run dev

It should open a web browser but if does not, open a web page and connect to: http://localhost:3004/.

References

The library is used by several systems, including Bertifier, The Vistorian, and Compadre.

Thanks

Thanks to Curran Kelleher @curran for adapting the library to modern JavaScript modules.

Thanks to Philippe Rivière @fil for porting the "Les Misérables" example to observablehq

Thanks to Renaud Blanch for giving me his implementation of the 'Optimal Leaf Ordering' algorithm. He has improved it and the distribution is available as ordering.

I originally started this in order to add a reordering module to D3.js.

The project structure and Makefile is based on that of D3, so a big thank you goes to Mike Bostock for this.

About

JavaScript library to reorder matrices

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 94.2%
  • HTML 3.9%
  • Python 1.5%
  • CSS 0.4%