Last week Tom Gonzalez wrote a blog post announcing Axiis, the open-source data visualization framework we’ve been developing. Tom goes into a good deal of depth about how the system works, so I won’t rehash all those specifics here. I just wanted to share my take on what Axiis is meant to do at a high level.
Axiis is not a reimagining of the Flex charting framework or any other comparable library. Axiis can be more accurately described as a data-driven layout engine for Degrafa geometry. We see the primary use of this engine being data viz, so we’re billing it as a data visualization framework.
So what do I mean when I say “data-driven layout engine?” When using Axiis, you describe the geometry necessary to render a single element in your data set. The engine then iterates over the entire data set, creating and laying out all necessary instances of that geometry. This process allows you to create seeming complex visualizations in a relatively short amount of markup.
Take a column chart as an example. (Though not all that complex, it still takes a fair bit of code to write a column chart from scratch.) A column chart is simply a series of rectangles laid out horizontally where each rectangle’s height represents the value it is rendering. So to create that in Axiis, you declare a horizontal layout with a rectangle geometry. You then set up a binding expression to compute the height for each rectangle. As the engine runs the binding expression executes, and the geometries are rendered side by side and with correct heights. Huzzah!
The column chart is just a basic example. Axiis is capable of much more than simple Cartesian charts. Layouts can have child layouts as well. This allows you to iterate over the top level of your data set in a parent layout and then iterate over another property in the child. Tack on Degrafa’s ability to compose geometries, and you’ve got the tools to create very expressive visualizations. Tom has put together an example he calls the Stacked Wedge that demonstrates nested layouts and geometry composition. It represents data in a way that would be difficult to achieve with other frameworks, it looks beautiful, and the core of it is only 100 lines of markup!
Axiis is under heavy development, and it is rapidly approaching an alpha release. Keep your eyes here and on Tom’s blog over the next few weeks for news and examples of the full scale of Axiis’ capabilities.