Data visualization is a new field that allows displaying a set of information in a visual and interactive form. In principle, any programming language that run on client can build these visualizations, but this post covers three alternatives, in ActionScript (Flex / Flash), Java and JavaScript.
This article is more technical about the existing technologies, for an introductory article about this subject, read the post "Data visualization".
ActionScript
Flare
Flare is a library in ActionScript 3, completely open source, created by Jeffrey Heer, being able to create from simple charts to complex and interactive visualizations.
Among the possibilities, you can find the control over expand or contract the nodes descendants, the ability to apply layouts to conform to the laws of physics and create an organic visualization, the possibility to use distance filters to distort the layout as a fish eye lens, and also animation effects, visual coding and much more.
To know all the options that this library offers, read the API, check the demonstration and also the applications made with Flare. Although it’s very complete, to start in Flare is a bit difficult, because there isn’t many online tutorials, however there are two forums, one in SourceForge and the other at GooseBumps.
BirdEye
BirdEye is a community project done in ActionScript 3, fully open source with five distinct components made for data visualization.
RaVis (Relational Analysis) is the component designed to display relational data with different layouts and options. GeoVis (GeoSpatial Analysis) displays graphical information plotted onto a map. QaVis (Quantitative Analysis) is the component created to display charts as bar graphs, treemap and bubbles in 3D. The Tavis (Temporal Analysis) is made to display timelines and GuVis (General Utility) offers tools such as focal distortion.
Kap Visualizer
Kap Visualizer is a component for Flex with a weird license, because it isn't open source and isn't allowed to sell applications made with it, but it's shown as freeware...
It's so far the most enclosed component, maybe because it has being developed by just one company and not a community, however it's super easy to use and the result is very stable and fast. Check out the demo application and meet the other components of Kap Lab.
SpringGraph Flex Component
SpringGraph is a component designed for Flex 2, but for a simpler solution it works well, as demonstrated by the application SpringGraphDemo.
Graph Gear
Graph Gear is simple, but effective, capable of rendering the relationships created by a xml with the GraphML standard. The spread of this component is the ability to easily interact with commands and events in JavaScript.
Java
Prefuse
Prefuse was created by Jeffrey Heer (who later created the Flare) using the Java 2D graphics library. This framework allows you to create applets and applications, easily integrating it with Swing. It comes with a set of features for data modeling, visualization and interactivity, enabling the creation of visualizations in different layouts, supports animation and it also can connect to the database and provide an integrated search.
DocuBurst, created with Prefuse by Christopher Collins
Processing
Processing is a programming language and an open source ambient made in Java, focused in programming images, animations and interactivity. It’s possible to create not only data visualizations, but also random images and animations that conforms a physical or mathematical equation or pattern.
I’ll cite two good examples made with Processing. One is the Oasis project, created by Yunsil HEO and Hyunwoo Bang, capable of displaying images that evoke an aquatic environment where you can touch and interact with the elements.
The other example is the work ElectroPlastique by Marius Watz, who is an artist with an interesting portfolio that includes not only processing but also Java 2D.
To learn, there is a list of books available at Processing site and it's worth to look at Daniel Shiffman's Learning Processing book.
JavaScript
Protovis
Protovis is a small js file, JavaScript, able to produce data visualization using the Canvas element. The result loses a little if you compare with the ones made in Java and ActionScript, but is certainly a good reference.
Conclusion
The Protovis in Java Script is very basic in alternatives, but may be the ideal solution when you can’t count with many features in the client computer. Java provides a better resource management as an application, but it is a programming language much more complex and difficult to learn and the applets today aren’t popular, while the flash player reaches almost 100% of users.
The visualization components in ActionScript usually are a bit slower because Flash Player takes to much time to process when there are many small elements, indeed, I would say that the maximum number of items would be around 500 to 1000 nodes.
Actually, I think you can’t say that a component is better than another because each one can offer the best and quickest solution to a given case. But I personally, like more Flare, the search results on my site is done with Flare, for example.
And if you want to know the sites i'm visiting about data visualization, check out my account on Delicious.