User Tools

Site Tools


java:prefuse-scatterplot

This is an old revision of the document!


prefuse Tutorial: Scatter Plot

The documentation available for prefuse is quite sparse, it consists mainly of the JavaDoc API documentation and demo source code. Even though the demo source code provides as good starting point (cp. [Heer et al., 1995] ), in my opinion the examples are overly complex for beginners.

Therefore, this tutorial starts with the minimum source code to create a scatter plot and incrementally adds features. Further, it discusses an axis-based visualization technique, whereas the documentation of prefuse focuses on graph visualization.

Phase 0: Infrastructure

Here we create the outline of our demo application. It is designed very simple and consists of four static methods:

  • private static JComponent createVisualization(Table data)
    • now this is only some dummy code, but in the following phases our prefuse code will be inserted here.
  • private static Table generateTable()
    • prepare a prefuse data table with some hard coded values (see below)
  • private static void createAndShowGUI(JComponent display)
    • some basic Swing code to set up a window for the demo application
  • public static void main(String[] args)
    • runs these three methods

This shows, how we create a data table for our tutorial. We use hard coded values so that the demo application stays self-contained. It would be easy to replace this method by a call to prefuse's DelimitedTextTableReader.

	private static Table generateTable() {
		Table table = new Table();
 
		// use a calendar for input of human-readable dates  
		GregorianCalendar cal = new GregorianCalendar();
 
		// set up table schema
		table.addColumn("Date", Date.class);
		table.addColumn("BMI", double.class);
		table.addColumn("NBZ", int.class);
		table.addColumn("Insult", String.class);
 
		table.addRows(3);
 
		cal.set(2007, 11, 23);
		table.set(0, 0, cal.getTime());
		table.set(0, 1, 21.0);
		table.set(0, 2, 236);
		table.set(0, 3, "F");
 
		cal.set(2008, 6, 22);
		table.set(1, 0, cal.getTime());
		table.set(1, 1, 35.8);
		table.set(1, 2, 400);
		table.set(1, 3, "F");
 
		cal.set(2009, 3, 8);
		table.set(2, 0, cal.getTime());
		table.set(2, 1, 28.8);
		table.set(2, 2, 309);
		table.set(2, 3, "T");
 
		return table;
	}

Phase 1: Essentials

java/prefuse-scatterplot.1249549106.txt · Last modified: 2009/08/11 09:53 (external edit)

alex @ ieg: home about me publications research