12
Oct
Generation of Complex Diagrams: How to Make Lasagna Instead of Spaghetti
Update 2011: Many of the ideas in this thesis have evolved and been carried over into my book Designing Data Visualizations.
My master’s thesis is a system for creating good diagrams. It starts with the basics of perception and cognition, and walks the reader through the process of making appropriate choices for their particular design problem.
From the abstract:
This thesis presents a system for the generation of complex diagrams. “Complexity” is defined as a measure of distinct data types that are independently visually encoded. Diagrams representing four or more types of data are defined as complex, while diagrams representing three or fewer are simple. Successful generation of complex diagrams is dependent on appropriate design choices. Five fundamental principles are introduced to guide the choices made by the diagram designer. The two contextual fundamental principles are “different goals require different methods,” addressing the needs of the diagram designer, and “audience brings context with them,” addressing the needs and context of the diagram reader. The three perceptual fundamental principles are the “principle of information availability,” which guides the selection and density of the diagram elements, the “principle of semantic distance,” which guides the spatial placement and grouping of the diagram elements, and the “principle of informative changes,” which guides the visual encoding of the diagram elements. A review of the diagram design process, comprising selection, encoding, and placement of the diagram components, is given. For each phase of the design process the influence of the appropriate fundamental principles is discussed, and the fundamental principles are extended into applied guidelines and suggestions.
Pingback: Complex Diagrams » Hierarchy of a Book
Pingback: Complex Diagrams » Exposition of Threads in a Speech
Hi Noah,
I enjoyed your thesis very much. Great thinking. I am currently in the process of digesting it and integrating the ideas with some of our internal training at XPLANE.
Thanks,
Dave
Hi Noah,
A subject very close to my heart. I spend my professional life drawing business process and data diagrams and am constantly staggered at the poor quality of such diagrams from sources that should know better. Many of these diagrams are undigestible and literally not worth the paper (or pixels) they are printed on. Anything that can improve this situation, such as your thesis, is very welcome.
I was especially interested in your comments on entity relationship diagrams (ERD). I seem to be fighting a lone battle to use the ‘parent above child’ rule (aka the ‘no dead crows rule’) in drawing these diagrams. This gives the entities a positional value and achieves consistency in the few generic structures that appear in these models. Assuming you can strech your entity boxes it is possible to achieve very large diagrams (100 entities +) without a single bent or crossing line. This does require significant spatial awareness skills to spot how to unravel some of the spaghetti so I’m doubtful if this process can ever be distilled to a few rules and eventually automated (but I could be wrong). Regarding your comments on axes, I’m not sure what sort of axes you could apply to an ERD. I’d be interested in your thoughts on that.
Regards,
Mick
Hi Mick,
Thanks for your feedback.
You’re already on the right path in terms of axes with your ‘parent above child’ rule. Because you’ve made spatial placement matter, you’ve implicitly defined your vertical axis to have meaning relative to the hierarchy of your nodes: higher placement = higher in the hierarchy. That’s very clear and very useful.
If you want to make the horizontal axis meaningful you might thing about it in terms of groups instead of a continuum of values. If there is no natural ordering to work with, a totally arbitrary order can still be useful, as long as you clearly communicate your groupings. So instead of an axis that looks like:
[highest value] -> -> -> [lowest value]
you could simply divide the area into chunks:
[customer tables] [transaction tables] [product tables]
An example of this is the vertical axis in my speech diagram. The thematic rows have distinct values but don’t have an inherent “right” order, so I chose an ordering that I thought made sense to me. By doing so I made placement on the vertical axis meaningful.
Good luck! Please let me know if you have any more thoughts or questions.
Best, Noah
Pingback: Ignite Seattle! » Ignite Seattle Talks
Pingback: Semergence » Blog Archive » links for 2008-02-12
Pingback: Internet Alchemy » links for 2008-02-13
Pingback: Ignite Seattle! » Ignite Seattle 5: The Schedule
I really very liked this post. Can I copy it to my site?
Thank in advance.
Sincerely, Timur Alhimenkov.
Timur,
I prefer people link back to my pages, rather than copying the entries to other places.
Thanks, Noah
Very cool thesis. I learned a lot and look forward to reading more about your work.
Pingback: New book: Designing Data Visualizations « Complex Diagrams