Installing and Configuring HoloViews¶
HoloViews can be installed on any platform where NumPy and Python 2.7 or 3 are available.
That said, HoloViews is designed to work closely with many other libraries, which can make installation and configuration more complicated. This user guide page describes some of these less-common or not-required options that may be helpful for some users.
Other installation options¶
conda install matplotlib plotly
HoloViews can also be installed using one of these
pip install holoviews pip install 'holoviews[recommended]' pip install 'holoviews[extras]' pip install 'holoviews[all]'
The first option installs just the bare library and the NumPy and Param libraries, which is all you need on your system to generate and work with HoloViews objects without visualizing them. The other options install additional libraries that are often useful, with the
recommended option being similar to the
conda install command above.
Between releases, development snapshots are made available as conda packages:
conda install -c pyviz/label/dev holoviews
To get the very latest development version you can clone our git repository and put it on the Python path:
git clone git://github.com/ioam/holoviews.git cd holoviews pip install -e .
Jupyter notebook configuration¶
In version 5.0 of the Jupyter notebook, limits on data rates were added that unfortunately also prevent image output from showing up in many cases. For now, the most effective fix is to generate a Jupyter config file:
jupyter notebook --generate-config
and then edit the resulting file (most likely, ~/.jupyter/jupyter_notebook_config.py) with code that changes the limit:
c = get_config() c.NotebookApp.iopub_data_rate_limit=100000000
To work with JupyterLab you will also need the HoloViews JupyterLab extension:
conda install -c conda-forge jupyterlab jupyter labextension install @pyviz/jupyterlab_pyviz
Once you have installed JupyterLab and the extension launch it with:
The default HoloViews installation will use the latest defaults and options available, which is appropriate for new users. If you want to work with code written for older HoloViews versions, you can use the top-level
hv.config object to control various backwards-compatibility options:
future_deprecations: Enables warnings about future deprecations (introduced in 1.11).
style_17: Enables the styling and defaults as found in HoloViews 1.7.
warn_options_call: Warn when using the to-be-deprecated
__call__syntax for specifying options, instead of the recommended
It is recommended you set
True in your holoviews.rc file (see section below).
It is possible to set the configuration using
import holoviews as hv hv.config(style_17=True)
Config(future_deprecations=False, image_rtol=0.001, name='Config00003', style_17=True, warn_options_call=True)
However, because in some cases this configuration needs to be declared before the plotting extensions are imported, the recommended way of setting configuration options is:
In addition to backwards-compatibility options,
hv.config holds some global options:
image_rtol: The tolerance used to enforce regular sampling for regular, gridded data. Used to validate
This option allows you to set the
rtol parameter of
Image elements globally.
Overlay are designed around convenient tab-completion, with the expectation of upper-case names being listed first. In recent versions of Jupyter/IPython there has been a regression whereby the tab-completion is no longer case-sensitive. This can be fixed with:
import holoviews as hv hv.extension(case_sensitive_completion=True)
The holoviews.rc file¶
HoloViews searches for the first rc file it finds in the following places (in order):
holoviews.rcin the parent directory of the top-level
__init__.pyfile (useful for developers working out of the HoloViews git repo)
The rc file location can be overridden via the
HOLOVIEWSRC environment variable.
The rc file is a Python script, executed as HoloViews is imported. An example rc file to include various options discussed above might look like this:
import holoviews as hv hv.config(warn_options_call=True) hv.extension.case_sensitive_completion=True