A simple Swing component from browsing sparse matrices



The JMatrixView project is aimed at matrix visualization. It provides a reliable java widget/component for matrix visualizationthat one will be able to embed in its own software. Implementation is in Java 1.4.2. Thanks to the Colt matrix package ( JMatrixView can support huge matrix, that can eventulally be sparse. It features rows and columns labelling and customizable CellRenderer-s : cells of the matrix can be rendered as small squarres, rectangles, circle, triangle, etc, and with gradient of colors taking into account the value stores in the cell.

Future work will incorporate fisheye magnification of the matrix cell to be able to read the values when the matrix resolution is to low to do so : the resolution of the cells of the graphical matrix can be changed dynamically thanks to sliders from 100 pixels to 1 pixels to be able to catch wide patterns in large matrix.

We use it or browsing adjency matrices of graphe, when the node-link representation is no longer appropriate (too big graph). Future work will also incorporate an interface for block modelling. We made this JMatrixView because the regular Swing JTable cannot deal with 40 000x40 000 sparses tables/matrices.

The Colt library is used to implement  matrix storage (DoubleMatrix2D).



A small matrix is display at resolution 1 pixel per cell

one pixel resolution matrix view

A large view of the same matrix at a higher resolution. Colorization is gradient-based and takes into account cell values. In addition to labels, rows and columns can hold types used to paint various shapes.

Same view with no inter-cell space

Here row resolution is different to column resolution. Row or columns labels appear when there is enough room

Here is an example with  high resolution for cells. Displaying cell values is on.

Download Logo