Search code examples
user-interfacedatatablelanguage-agnostic

What are good ways to present three-dimensional data to the user in a two-dimensional form?


This might seem phrased oddly at first, but let me explain through example. Note that I'm mostly coming at this question from a C# angle, but the question itself is pretty language agnostic.

If we have an array of values to display to the user, something like a ListView or ComboBox are a good way to present the data to the user. I'm deeming this as one-dimensional data.

If we have a table of values to display to the user, then things like DataGridViews work perfect for our needs. I'm deeming this as two-dimensional data.

Hopefully, what I mean by three-dimensional data makes sense now. What is a good way to present this information on a flat screen? At the moment, I'm using a combination of a ListView and a DataGridView and updating the DataGridView as the selected item in the ListView changes - but I'm curious if there are other techniques that people have used for this problem.


Solution

  • You might be interested in the chapter "Showing complex data" in Jennifer Tidwell's user-interface patterns book "Designing Interfaces" (O'Reilly, 2006).

    For example, Tidwell describes a pattern "small multiples," in which some of the dimensions are tiled across two or three dimensions.

    Edward Tufte's books might also be of interest; e.g., "The Visual Display of Quantitive Information."

    One name for the pattern you're currently using is "master-detail". I think Tidwell called it something else.