LinLogLayout is a simple program for computing graph layouts
(positions of the nodes of a graph in two- or three-dimensional space)
and graph clusterings for visualization and knowledge discovery.
It reads a graph from a file, computes a layout and a clustering, writes
the layout and the clustering to a file, and displays them in a dialog.
LinLogLayout can be used to identify groups of densely connected nodes
in graphs, like groups of friends or collaborators in social networks,
related documents in hyperlink structures (e.g. web graphs),
cohesive subsystems in software models, etc.
With a change of a parameter in the main method,
it can also compute classical "nice" (i.e. readable) force-directed layouts.
The program is intended as a demo of the use of its core layouter
and clusterer classes MinimizerBarnesHut, MinimizerClassic,
and OptimizerModularity. See these classes for details about layouts
and clusterings. While MinimizerBarnesHut is faster, MinimizerClassic
is simpler and not limited to a maximum of three dimensions.
Usage: java LinLogLayout
Computes a -dimensional layout and a clustering for the graph
in , writes the layout and the clustering into ,
and displays (the first 2 dimensions of) the layout and the clustering.
must be 2 or 3.
Input file format:
Each line represents an edge and has the format:
The weight is optional, the default value is 1.0.
Output file format:
Example:
java -cp bin LinLogLayout 2 examples/WorldImport1999.el WorldImport1999.lc
Suggestions, questions, and reports of applications are welcome.
Send them to Andreas Noack, an@informatik.tu-cottbus.de.
If you find LinLogLayout useful, please recommend it and the LinLog paper
A. Noack: "Energy Models for Graph Clustering", Journal of Graph Algorithms
and Applications, Vol. 11, no. 2, pp. 453-480, 2007. http://jgaa.info/
For more information about the measure Modularity, which is optimized
to compute graph clusterings, see
M. E. J. Newman: "Analysis of weighted networks", Physical Review E 70,
056131, 2004.