Java Universal Network/Graph Framework
All examples require JDK 1.4.x or better; ensure you have a recent Java plugin installed.
Note: If you have installed a new JRE version over an old one, make sure you update your plug-in settings so that your browser uses the correct JRE. In Windows XP/NT/2k/9x, go to Start→Control Panel→Java Plug-in→Advanced and choose the latest version of the JRE from the drop-down list.
This example shows off many of the capabilities of
, a renderer implementation that is designed to
allow the programmer to change a number of different properties of the rendering
of vertices and edges. The source code (in
) is also intended to serve as an example of different ways to program using
Demonstrates hyperbolic transformations of the network visualization,
via a "lens" effect. Also shows the difference between model (layout)
scaling and view scaling.
Clustering Demo Applet
This example demonstrates the ability to perform clustering on graphs, interactively in JUNG. The data set being used here is the Zachary karate club data set, the clustering algorithm being used is Mark Newman's edge betweenness clustering algorithm, and the layout algorithm is Fruchterman-Reingold.
Bipartite Graph Applet
This page demonstrates JUNG's ability to create bipartite graphs,
to fold them into single-mode graphs, and to interactively visualize
user changes to the data. It uses Davis, Gardner, and Garder's
dataset from their 1941 Deep South
(as reprinted in Freeman's
, figure 1).
Shortest Path Applet
This demonstrates the shortest path algorithms in JUNG. When a user
selects two vertices, the system chooses one shortest path between
those two vertices and colors it. The graph is randomly generated
by the EppsteinPowerLawGenerator.
Ranking Demo Applet
This demonstrates several ranking algorithms within JUNG. The vertices
are laid out with the Fruchterman-Reingold layout. It is possible
to filter out vertices
with the lower slider (nodes with low
betweeness are removed first), and to scale
the vertices with
the upper slider.
Layout Demo Applet
This applet demonstrates a series of different layout algorithms with the same renderers:
KKLayout - The Kamada-Kawai algorithm for node layout
FRLayout - The Fruchterman-Reingold algorithm
SpringLayout - A simple force-directed spring-embedder
ISOMLayout - Meyer's "Self-Organizing Map" layout.
CircleLayout - A simple layout places vertices randomly on a circle
Prefuse Demo Applet
This applet tests out the interface to the prefuse
Add-a-Node Demo Applet
This applet shows an example in which nodes are gradually added one-at-a-time
to a display.
Crooked Edge Demo Applet
This applet previews support for edges that are
straight lines. Note that the clickable region around the
edges follows the shape of the crooked line. The data is randomly
generated; the layout is a spring embedder.