Andrew Trice
Real-World Rich Internet Applications
Monday June 16, 2008
Visualizing Data in Multiple Dimensions
I've been diving into the latest build of PaperVision3D lately, and here are a couple of experiments that I've come up with. I wanted to put together some examples that explore different ways to interact with data, and I wanted to try to come up with some interesting data visualizations.
There are lots of ways that you can visualize multi-dimensional data sets. There are common charts like bubble charts, which show 3 dimensions by using the x/y coordinate plane in conjunction with a radius (z). With the introduction of color, you can add a fourth dimension to that same visualization. You also have HLOC charts, which actually show you 5 dimensions for a series of data (high, low, open, close, performance over time). With the addition of multiple series of data per chart, you can get into some pretty complex diagrams that clearly express quite a significant amount of data.
Color can add a lot to data visualizations; It can be used to denote different series of data, or it can be used to denote different variables or states of a singular data series or singular data point. You can also incorporate iconography into your data visualizations to express further detail and information about your data (or data trends). For example, you could have a scatter plot, showing x/y representation, but if each point in the scatter plot is an image that has specific meaning, then you are also able to insert semantic meaning to the data set. If you add colored lines that connect each point, you can add additional information about the relation of the icons (data points) to each other.
I could go on for a while, here, but for now I won't. (That doesn't mean it won't come up again.) If you want to read a lot about these types of subjects, I recommend the work of Edward Tufte.
In these experiments, I really wanted to dive into the display of data within a three dimensional coordinate space. Some of the things I've seen with PaperVision3D recently have really inspired me. Last week, I started out with some simple experiments. Those were a lot of fun to put together, but I definitely think that we can go further with the rich interfaces of the modern web.
Those experiments have led me here... I think these experiments are particularly interesting; they show you what is possible with technology, and how you can manipulate the interface to view the data at a different angle (which may or may not provide insight into the underlying data set; it depends on the usage). My intention is that these experiments will help to bring about better visualizations (or at least a better quality experience when interacting with data). The quality of any visualization actually depends on the data and the meaning and relationships that you can derive from it.
My first example is a new take on the line chart. The chart on the left side is a normal line chart using Flex. The line chart on the right is a custom 3D line chart. You'll notice that both contain the same data, and are both updated accordingly as the underlying data collection is updated. The data is just randomly generated on the client at the moment, but that can be easily changed.
In the 3D chart, you can click on it and drag to rotate that chart around the x and y axes. You can even zoom into and out of it, or you can even click on the "data mesh" checkbox to show the interconnections between data points in the various data series.
While this example shows interaction with the data, and the ability to view it at different angles, there are a few things about it that actually take away from the quality of the data visualization. First of all, each series is on a different z-depth. If your data isn't actually 3-dimensional, this distorts the 2 dimensional projection of the data because the data that is "deeper" on the z-axis will appear smaller and closer together. If you data doesn't actually require this kind of visualization, don't use it... it will be distorted.
Second, working with a 3D space is not always easy. While sometimes the 3D perspective adds to the view and interactivity of the data, if often makes it harder to understand. You want to display your data in a method that is intuitive, and easy to comprehend. Not to mention, click and drag on that graph enough, and you can get lost in the data very quickly.
Now, on to my second example... I really had fun with this one.
The second example shows a 3D line chart, where the data is actively changing in all 3 dimensions (x/y/z, in yellow). Not only is there the actual 3D data set, it also includes what I call "shadow-projections" of the data. On the z plane, it shows the x/z projection of the data. On the y plane, it shows the y/z projection of the data, and on the x plane, it shows the x/y projection of the data.
In this example, you can also click and drag, and zoom to interact with the data. Once you start clicking and dragging, you'll see what I mean about the "shadow-projections".
While this experiment has advantages for some data sets, the same cautions of using a 3D data representation still apply. First and foremost, in your own projects you want to make sure that the visualization is easy to understand, and easy to work with.
These are just a few experiments that I put together. I'm now in the process of finding some real multidimensional data sets that I can use to create some better examples, so stay tuned for more.
You can find more information on PaperVision 3D at:
PaperVision3D Blog
PaperVision3D Downloads
PaperVision3D Wiki
PaperVision3D Forums
Enjoy!






