Stop plotting your data - annotate your data and let it visualize itself.
HoloViews requires Param and Numpy and is designed to work together with Matplotlib or Bokeh, making use of the Jupyter/IPython Notebook.
You can get the latest version of HoloViews from the ioam conda channel:
conda install -c ioam holoviews
Or clone holoviews directly from GitHub with:
git clone git://github.com/ioam/holoviews.git
Please visit our website for official releases, installation instructions, documentation, and many detailed example notebooks and tutorials. Additional user contributed notebooks may be found in the holoviews-contrib repository including examples that may be run live on mybinder.org.
For general discussion, we have a gitter channel. In addition we have a user-contributed wiki describing current work-in-progress and experimental features. If you find any bugs or have any feature suggestions please file a GitHub Issue or submit a pull request.
Once you've installed HoloViews, you can get started by launching Jupyter Notebook:
jupyter notebook
Now you can download the tutorial notebooks. unzip them somewhere Jupyter Notebook can find them, and then open the Homepage.ipynb tutorial or any of the others in the Notebook. Enjoy exploring your data!
Note: When running HoloViews in Jupyter Notebook 5.0 a data rate limit
was introduced which severely limits the output that HoloViews can
display. This limit will be removed again in the upcoming 5.1
release, in the meantime you can raise the limit manually by
overriding the default iopub_data_rate_limit
:
jupyter notebook --NotebookApp.iopub_data_rate_limit=100000000
Alternatively you can set a higher default in the user configuration file
in ~/.jupyter/jupyter_notebook_config.py
, by adding:
c.NotebookApp.iopub_data_rate_limit=100000000
If the configuration file does not exist generate one first using:
jupyter notebook --generate-config
Overview
- Lets you build data structures that both contain and visualize your data.
- Includes a rich library of composable elements that can be overlaid, nested and positioned with ease.
- 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.
- All features available in vanilla Python 2 or 3, with minimal dependencies.
Support for maintainable, reproducible research
- Supports a truly reproducible workflow by minimizing the code needed for analysis and visualization.
- Already used in a variety of research projects, from conception to final publication.
- All HoloViews objects can be pickled and unpickled.
- Provides comparison utilities for testing, so you know when your results have changed and why.
- Core data structures only depend on the numpy and param libraries.
- Provides export and archival facilities for keeping track of your work throughout the lifetime of a project.
Analysis and data access features
- Allows you to annotate your data with dimensions, units, labels and data ranges.
- Easily slice and access regions of your data, no matter how high the dimensionality.
- Apply any suitable function to collapse your data or reduce dimensionality.
- Helpful textual representation to inform you how every level of your data may be accessed.
- Includes small library of common operations for any scientific or engineering data.
- Highly extensible: add new operations to easily apply the data transformations you need.
Visualization features
- Useful default settings make it easy to inspect data, with minimal code.
- Powerful normalization system to make understanding your data across plots easy.
- Build complex animations or interactive visualizations in seconds instead of hours or days.
- Refine the visualization of your data interactively and incrementally.
- Separation of concerns: all visualization settings are kept separate from your data objects.
- Support for fully interactive plots using the Bokeh backend.
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.