HoloViews – Make Data Analysis and Visualization Seamless

HoloViews is an open-source Python library designed to make data analysis and visualization seamless and simple. With HoloViews, you can usually express what you want to do in very few lines of code, letting you focus on what you are trying to explore and convey, not on the process of plotting.

HoloViews focuses on bundling your data together with the appropriate metadata to support both analysis and visualization, making your raw data and its visualization equally accessible at all times.

HoloViews depends on NumPy and Python 2.7 or 3. It optionally uses the matplotlib, Bokeh, and Plotly backends.

Features include:

  • Build data structures that both contain and visualize your data.
  • Includes a rich library of composable elements that can be overlaid, nested and positioned easily.
  • Supports rapid data exploration that naturally develops into a fully reproducible workflow.
  • Create interactive visualizations that can be controlled via widgets or via custom events in Python using the ‘streams’ system. When using the Bokeh backend, you can use streams to directly interact with your plots.
  • Rich semantics for indexing and slicing of data in arbitrarily high-dimensional spaces.
  • Plotting output using the Matplotlib, Bokeh, and plotly backends.
  • A variety of data interfaces to work with tabular and N-dimensional array data using NumPy, pandas, dask, iris, and xarray.
  • Every parameter of every object includes easy-to-access documentation.
  • Relies heavily on semantic annotations, i.e., metadata you declare that lets HoloViews interpret what your data represents. With these annotations, HoloViews can perform complex tasks like visualization automatically.
  • Three types of annotation can be associated with each element:
    • Type – used to declare the sort of data you have, which is required before it can be visualized.
    • Dimensions – specify the abstract space in which the data resides, allowing axis labeling and indexing.
    • Group/Label – declare a meaningful category and human-readable description of the element, allowing plot labeling and selecting related sets of elements.
  • Visual options and styling.
  • Jupyter Notebook support:
    • Support for all recent releases of IPython and Jupyter Notebooks.
    • Automatic tab-completion everywhere.
    • Exportable sliders and scrubber widgets.
    • Custom interactivity using streams and notebook comms to dynamically updating plots.
    • Automatic display of animated formats in the notebook or for export, including gif, webm, and mp4.
    • Useful IPython magics for configuring global display options and for customizing objects.
    • Automatic archival and export of notebooks, including extracting figures as SVG, generating a static HTML copy of your results for reference, and storing your optional metadata like version control information.
  • All features available in vanilla Python 2 or 3, with few dependencies.

Website: holoviews.org
Support: User Guide, GitHub, Twitter, Gitter
Developer: Anaconda
License: BSD 3-Clause “New” or “Revised” License


HoloViews is written in Python. Learn Python with our recommended free books and free tutorials.

Return to Python Visualization Packages Home Page | Return to Python Data Analysis Home Page

Read our complete collection of recommended free and open source software. The collection covers all categories of software.

The software collection forms part of our series of informative articles for Linux enthusiasts. There's tons of in-depth reviews, alternatives to Google, fun things to try, hardware, free programming books and tutorials, and much more.
Share this article

Share your Thoughts

This site uses Akismet to reduce spam. Learn how your comment data is processed.