5 ms·
Regarding the use of three dimensions for visualization, see Tamara Munzner's forthcoming book, "Visualization Design and Analysis: Abstractions, Principles, an
by mbostock 14y ago
Regarding the use of three dimensions for visualization, see Tamara Munzner's forthcoming book, "Visualization Design and Analysis: Abstractions, Principles, and Methods." [1] Although still in draft form, the section "No Unjustified 3D" is relevant:
> Many people have the intuition that if two dimensions are good, three dimensions must be better – after all, we live in a three-dimensional world. However, there are many difficulties in visually encoding information with the third spatial dimension, depth, which has important differences from the two planar dimensions.
> The cues that convey depth information to our visual system include occlusion, perspective distortion, shadows and lighting, familiar size, stereoscopic disparity, and others. This section discusses the costs of these depth cues in a visual encoding context, and also the challenges of text legibility given current display technology. It then discusses in what situations the benefits of showing depth information could outweigh these costs, and the need for justification that the situation has been correctly analyzed.
> In brief, 3D is easy to justify when the user’s task involves shape understanding of inherently three-dimensional structures. In this case, which frequently occurs with inherently spatial data, the benefits of 3D absolutely outweigh the costs, and designers can use the many interaction techniques designed mitigate those costs.
> In all other contexts, the use of 3D needs to be carefully justified. In most cases, rather than choosing a visual encoding using three dimensions of spatial position, a better answer is to visually encode using only two dimensions of spatial position. Often an appropriate 2D encoding follows from a different choice of data abstraction, where the original dataset is transformed by computing derived data.
Although I'm not sure I would recommend it, you can do 3D in D3.js by extending the DOM to represent a 3D scenegraph. For example, with X3DOM: http://bl.ocks.org/1291667 http://bl.ocks.org/1291667
[1] http://www.cs.ubc.ca/~tmm/courses/533-11/book/ http://www.cs.ubc.ca/~tmm/courses/533-11/book/
- unconed 14y agoI'm well aware of the complications, however, I've found a lot of it comes down to priming your audience. I used subtle orbiting motions, slow transitions and reference grids to let the audience see where the depth was at all times. I haven't tried adding real shadows or SSAO, but it would only enhance this. There's also 3d displays to consider. I think part of the problem is that we haven't had good tools to do this with. My mental sketchpad is in 3d, mathbox is what it looks like.
- mbostock 14y agoIf you are trying to understand three-dimensional functions, it makes sense to view them in 3D. I was just pointing out that in the domain of information visualization (separate from math and scientific visualization), 2D is generally preferred for perceptual reasons.
- unconed 14y ago... that's kind of why I made it a point to mention d3.js and heap lavish amounts of praise on it in the article. Which you read, right?
- mbostock 14y agoIndeed, thank you! Hugs all around. :) You made the argument that D3 doesn't do 3D because of the DOM, and I just wanted to clarify that while this is mostly true (caveat custom elements such as X3DOM), the reason is perceptual as much as technical.