I have learned much from the work Stuart Card and Jeffrey Heer. It was their research on graph layout algorithms that made possible the modularization of graphing capabilities in software. Heer's premier software implementation of this research is Prefuse. Computer Science taught us Graph Theory and the structure, manipulation, and traversal of nodes and edges. Prefuse taught us Radial Tree, Force-directed Graph, and Degree-of-Interest Tree. And Prefuse is excellent not just because it good at graphics and layouts but because it is also document-driven, i.e., it runs on XML. Sure, there's a Java API, and that's probably what most developers focus on. But the fact that it parses XML, that it recognizes a vocabulary and language for visualization, and that this language can be expressed as documents is what I think makes Prefuse special.
After Prefuse came Flare. Flare is a wonderful application of prefuse ported to ActionScript.
Flare really gets document-driven visualization. I was just browsing through the source when I unfolded the data/converters package:
See also (emphases added by me):
This is certainly familiar.Class Description Converters Factory class for looking up the appropriate IDataConverter for a given data format. DelimitedTextConverter Converts data between delimited text (e.g., tab delimited) and flare DataSet instances. GraphMLConverter Converts data between GraphML markup and flare DataSet instances. JSONConverter Converts data between JSON (JavaScript Object Notation) strings and flare DataSet instances.