Frequently asked questions
This page provides a list of frequently-asked questions concerning various aspects of the book and associated online material. You can read them all one-by-one to get a better idea of the aims and scope of this book. Be sure to first read also the general information provided on the overview page. Alternatively, for the impatient, the general answer to all these questions is
The book and online materials were structured this way to allow novice students to start quickly, stay focused, and get results quickly.
Q: Why aren't many visualization techniques not included in the second edition? I had hoped to see more of the golden oldies and/or some of the newer techniques published in the last years.
A: We have loved to include more. However, there are many kinds of limitations that constrain what can be put into such a book:
- size: First, the book should be of reasonable size (in terms of page count) to limit its price. Secondly, it should cover all basic techniques, since it is (mainly) meant to be a self-contained teaching aid for undergraduate students rather than a reference for advanced practitioners. The two constraints named above have led to the current selection of topics.
- applicability: Many great visualization algorithms exist out there. However, many of them are also relatively complex to explain (in a limited amount of space) and, more importantly, complex to implement from scratch. Preference was given to algorithms which are simple(r) to understand and implement, so students can learn from building and using them.
- scope: Many visualization algorithms focus on a narrow(er) set of problems. While they are excellent for practitioners familiar with, and interested in solving, those problems, they are of less interest to the general learning public.
Q: The book focuses mainly on spatial data visualization (Chapters 3-10) and much less on information visualization (Chapter 11). Why this imbalance?
A: The author believes that, to be able to design efficient and effective information visualization, one should first master several building bricks (computer graphics, data representation, scalar visualization, and domain modeling being the main ones). These are presented in the context of spatial data visualization applications, as we believe that this is easier than when using more abstract non-spatial data visualization use-cases. Secondly, there are several books out there focusing mainly on information visualization (see the overview in Chapter 1). These do a very good job in covering information visualization in more detail.
A: We believe that visual analytics is an advanced topic, far beyond the aims and scope of an introductory book to data visualization aimed (among others) at undergraduate students. To understand, learn, and practice visual analytics, one needs to master at least data representation, information visualization, data mining, interaction techniques, and programming relatively complex software applications. The current book presents several examples of visual analytics scenarios (Chapter 11), but does not go beyond this introductory stage.
Q: Cross-linnking the book text with the online material (exercises, sample code, scenarios, projects, and datasets) can be difficult. One cannot directly see the names (or URLs) of the specific online resources in the book to quickly navigate there.
A: This design decision was taken on purpose. It allows a complete decoupling of the design of the online material from the printed book. This allows, among others, an incremental refinement and enrichment of the online material without affecting the printed book structure at all.
Q: Some parts of the book use too many mathematical notations. This makes reading and understanding difficult for some students.
A: If there was a trade-off between being exact (and concise) to being easy to read (and potentially more verbose), we preferred the former. It is the author's impression that this favors a clearer understanding and an easier way to replicate the presented material.
Q: Where are the solutions to the presented exercises?
A: These will be made available to qualified instructors upon request by a mechanism going to be established shortly in cooperation with the publisher.
Q: Some exercises ask very precise questions, while others demand much more open-ended solutions. Why this variation?
A: We think that a variety of skills, ranging from being able to provide exact answers to mathematical questions; writing pseudocode algorithms; up to an including describing a possible design in free text, are all equally important for the visualization practitioner. As such, the provided exercises aim to test this entire mix of skills.
Q: The provided scenarios are quite simple. They cannot replicate the wealth of examples presented in the book. Why this limitation?
A: The observation is correct. This is an effect of limiting the scenarios to what one can easily construct using ParaView. True, ParaView can be extended with scripting or third-party plug-ins to provide more functionality. However, it is our experience that doing this involves a considerable amount of reading complex technical documentation and/or needing to compile source code which is not always well documented. Since our key aim is to provide scenarios that
- can be run in a few mouse clicks
- tun on any platform that ParaView runs,
we limited ourselves to simpler scenarios. You are welcome to submit more complex scenarios once they comply with the above two requirements.
Q: Besides ParaView, other visualization tools exist, such as MeVisLab, VisTrails, or SciRun. These provide more features that are not contained in ParaView. Why didn't you use these instead?
A: More is not always better. Several such tools have more complex installation and platform requirements and/or more restrictive license requirements, than ParaView. Also, we believe that they are harder to learn and use for a beginner. However, we are open to further including scenarios built with these tools in the online material, if many users demand it.
Q: The samples are too basic. They could have been easily extended to include better options, e.g. for color mapping, computation optimization, interaction, GUIs, and help functions. Why wasn't this done?
A: As their name says, the samples try to be minimal fully-running programs that illustrate one main technique at a time. A program that combines several such techniques would qualify better for what we call here a project. Providing minimal samples
- makes them easier to study, understand, and extend, as the student focuses on the main techniques of interest and not on infrastructure code
- makes them smaller, thus easier to archive, copy, and share
- leaves room for improvement, which is precisely the aim of projects
Q: Many samples use the same, or nearly the same, code bits (e.g. a Grid or Renderer subclass). Why are these copied all over the different samples, and why aren't the differences factored out e.g. by specialization via subclassing?
A: The answer has two parts:
- duplication: This allows each sample program to be located in a self-contained directory. The only exception are some large datafiles which are provided separately. This allows full freedom to manipulate the individual samples e.g. by studying them one-by-one, or copying or editing them without risking to break other samples. We believe this freedom is essential in a learning process.
- specialization: Duplication could have been significantly reduced by factoring out common code bits in separate classes and using various object-oriented design patterns such as subclassing or helper classes. This is e.g. the approach followed by many visualization toolkits such as VTK. However, from our over 15-year experience with VTK and similar toolkits, we noticed that specialization makes the overall code much more complex to understand and modify, and also larger. This conflicts with our sample-code self-containedness and minimality desiderates.
Q: Can one freely use the code samples in further activities?
A: The code samples can be used subject to the following restrictions:
- academic teaching: They can be freely used/modified in teaching activities for courses where the Data Visualization book is named as required reading material.
- academic research: They can be freely used/modified to construct academic research prototypes, as long as the book is cited in any ensuing publication as being the origin of the samples.
- commercial contexts: The samples cannot be used/modified to become part of commercial software products before obtaining a license from the author. Note that more advanced code samples related to the same functionality are available in this case too.
Q: The online material provides only a very few datasets. There are so many out there on the internet. Why don't you provide more?
A: There are several reasons for this:
- copyright: We cannot host on our page datasets for which we don't have the permissions to do so. For such datasets which are accessible via the internet, we offer links to their respective original download sources. You are welcome to provide more such links to increase this collection!
- size: Datasets are large. We cannot host too many datasets on our Wiki server beyond a certain limit. This constraint may be relaxed in the future.
- testing: Just adding a new dataset to our online connection is not sufficient. We have to check that the dataset is usable with the existing scenarios and sample code. This involves many things, such as e.g. checking for coming in one of the formats that our scenarios and sample code can read them, defects in meshes, not-a-number values in attribute fields, good sampling resolution, and working OK with the relevant scenarios and samples already present on this online collection. This takes time.
Q: Some projects are quite vaguely formulated and thereby are quite hard to execute. Why this vagueness?
A: The provided projects are indented, first and foremost, to be starting ideas from which instructors (and students) can design more concrete projects with fine-tuned requirements. Separately, the vague structure of some projects is on purpose: In real life, many visualization 'customers' come up with precisely this type of vague questions. It is the skill of the visualization designer to understand the problem, refine the requirements, and next design and implement a solution that satisfies the customer end-to-end.
Q: Project 'X' asks me to implement algorithm 'Y'. However, I've found a library 'Z' that does precisely that, and much better than I could. What is the point of reinventing the wheel?
A: Reinventing a wheel shows that the student understands what a wheel is, how a wheel works, how to build a working one, and what's needed to build an optimal one. That is the main aim of teaching (and learning) in the author's eyes.
Q: The slides do not cover all algorithms presented in the book. Why is this so?
A: The slides have been designed for two specific courses on scientific visualization and information visualization respectively. Due to constraints on the student population, aims and scope, duration, and logistics of those courses, certain parts of the book have not been included in the slides. However, feel free to modify them to optimally suit your course context.
Q: The slides contain algorithms not present in the book. Why is this so?
A: First, see the answer to the previous question. Next, consider that slides are a much more flexible medium than printed books. As such, they can (and were) updated more frequently than the material selected for the book. As mentioned above, feel free to modify them to optimally suit your course context.
Q: What is the distribution policy regarding slides or material derived from them?
A: Slides (or modifications thereof) are freely distributable to classes using the Data Visualization book as required reading material. Slides (or modifications thereof) are not distributable to other parties (such as openly posting them on the internet) without obtaining written consent from the author.
Q: I found what I think to be an error, omission, or unclarity in the book or some part of the online material. How can I report it?
A: Send a mail describing your finding to the author. Subject to time constraints, we are happy to process this feedback to improve the book and related material!
Q: I have this great exercise, scenario, sample code, or dataset, and want to have it included in the online material. What should I do?
A: See the answer to the previous question. Make sure you read first the notes on feedback provided on the page.