Parallel Coordinates Plot in Flex

I spent the past few weekends writing a parallel coordinates plot.   For the uninitiated, parallel coordinates plots are used to show the relationships between items in a multidimensional dataset.  Three dimensional data points can be difficult enough to visualize on a two dimensional screen, and when you throw even more dimensions into the problem, things just get nasty.  Parallel coordinate plots mitigate this problem by rendering each of the n axes parallel to each other and each data point as a series of line segments corresponding to where the point would appear in n-dimensional space.  So the point (3, 10, 7, 6) would be rendered like this:

Here’s a little example application using the period table of elements as a data source.  If you’re interested in the details of the implementation you can check out the source.

When I started the project I was concerned that using the charting classes as a base would bulk up the code and ultimately hinder performance, so while the MXML that defines the plot is reminiscent of the charting components, the base is actually UIComponent.  I’ve left plenty of room for extension in the classes that make up the plot.  It’s licensed under MIT, so if you want a different renderer for each axis, you got it.  If you want to draw loops instead of straight lines between the axes, go for it.  I’m going to add the project to my repository, so if you’re interested in any updates that I make to the code, you can check there.

If you need variety, two of the other members of the Fervor team have started open source projects for their own flavors of PCP.  (Swapping the acronym “PCP” in for “parallel coordinates plot” makes sentences more interesting, don’t you think?)  PCPlot belongs to Dasha and contains the code more or less as it appeared in Fervor.  FlexPC is a project Krist started with a couple of developers he met through a flexcoders post about PCP, but that project is still in the planning stage.

This entry was posted in Flex, Information Visualization. Bookmark the permalink. Both comments and trackbacks are currently closed.

2 Comments

  1. Posted March 20, 2009 at 10:27 am | Permalink

    My previous message unkindly ended before I finished the reference
    to my forthcoming textbook by Springer (530 pages, color)

    Parallel Coordinates – This book is about visualization, systematically incorporating our fantastic pattern-recognition into the problem-solving process, …
    http://www.springer.com/math/cse/book/978-0-387-21507-5

  2. Posted March 20, 2009 at 10:31 am | Permalink

    Delighted to see your nice work with ||-coords. To see and use the full power
    of the methodology show/implement lines, hyperplanes, surfaces to
    see convexity and some non-convexities in ANY dimension from just ONE
    orientation; also the non-orientable Mobius strip. Parallel Coordinates is
    a Coordinate System, PCS, rather than just a “plot” like pie-charts. Enjoy

One Trackback