Saturday 11:15 a.m.–11:30 a.m.

Building complex visualizations easily for reproducible science

Philipp Rudiger, Jean-Luc Stevens

Audience level:


Scientific visualization typically requires large amounts of custom coding that obscures the underlying principles of the work and makes it more difficult to share and reproduce the results. Here we describe how the new HoloViews Python package, combined with the IPython Notebook, provides a rich interface for flexible and nearly code-free visualization of your results while storing a full record


Visualization is one of the most serious bottlenecks in science and engineering research. Highly specialized plotting code often outweighs the code implementing the underlying algorithms and data structures. Over time, this inflexible, non-reusable code accumulates, making it much more difficult to try new analyses and to document the procedure by which measurements were turned into figures for publication. The result is that very few research projects are currently reproducible, even under a very loose definition of the term.

The new HoloViews Python package is designed to make reproducible research happen almost as a byproduct of having a much more efficient workflow, with flexible visualization of your data at every stage of a project from initial exploration to final publication. HoloViews provides a set of general-purpose data structures that allow you to pair your data with a small but crucial amount of metadata that indicates roughly how you want to view it (e.g. as images, 3D surfaces, curves, etc.). It also provides powerful containers that allow you to organize this data for analysis, embedding it in whatever multidimensional continuous or discrete space best characterizes it. For each of these data structures, there is corresponding (but completely separate) highly customizable visualization code that provides publication-quality plotting of the data, in any combination (alone, sampled, sliced, animated over time, embedded in subfigures, etc.). You can then easily and interactively explore your data, letting it display itself without providing further instructions except when you wish to change plotting options. Finally, you can easily export the resulting figures, along with the complete recipe for reproducing them. Combined with the optional IPython Notebook interface, HoloViews lets you do nearly code-free exploration, analysis, and visualization of your data and results, which leads directly to an exportable recipe for reproducible research. Try it!