{"id":4037,"library":"holoviews","title":"HoloViews","description":"HoloViews is a high-level, declarative plotting API for the PyData ecosystem, providing a concise way to build complex, interactive visualizations. It works seamlessly with data structures from libraries like NumPy, Pandas, Xarray, Dask, and Narwhals, and can render plots using Bokeh, Matplotlib, or Plotly backends. The library maintains an active development pace with frequent patch and minor releases, typically every few weeks or months, ensuring broad compatibility and continuous feature enhancements.","status":"active","version":"1.22.1","language":"en","source_language":"en","source_url":"https://github.com/holoviz/holoviews","tags":["plotting","visualization","declarative","interactive","bokeh","matplotlib","plotly","pydata","data science"],"install":[{"cmd":"pip install holoviews","lang":"bash","label":"Basic install"},{"cmd":"pip install holoviews[bokeh]","lang":"bash","label":"Install with Bokeh backend"},{"cmd":"pip install holoviews[all]","lang":"bash","label":"Install with all common backends & data libraries"}],"dependencies":[{"reason":"Popular interactive plotting backend for HoloViews.","package":"bokeh","optional":true},{"reason":"Common static plotting backend for HoloViews.","package":"matplotlib","optional":true},{"reason":"Interactive plotting backend for HoloViews.","package":"plotly","optional":true},{"reason":"Primary data handling library.","package":"pandas","optional":true},{"reason":"For N-dimensional labeled arrays and datasets.","package":"xarray","optional":true},{"reason":"For parallel computing with large datasets.","package":"dask","optional":true},{"reason":"For broader DataFrame compatibility, including Polars and DuckDB.","package":"narwhals","optional":true}],"imports":[{"symbol":"holoviews","correct":"import holoviews as hv"}],"quickstart":{"code":"import holoviews as hv\nimport numpy as np\n\nhv.extension('bokeh')\n\n# Create some sample data\nxs = np.linspace(0, 2 * np.pi, 100)\nys = np.sin(xs)\n\n# Create a Curve Element\ncurve = hv.Curve((xs, ys), 'x', 'y', label='Sine Wave')\n\n# Display the plot (in a Jupyter environment)\ncurve","lang":"python","description":"This quickstart demonstrates how to initialize HoloViews with a backend (Bokeh in this case) and create a simple `Curve` plot from NumPy data. The `hv.extension()` call is crucial for setting up the plotting backend in environments like Jupyter notebooks."},"warnings":[{"fix":"Add `hv.extension('bokeh')` (or your chosen backend) after `import holoviews as hv`.","message":"Always call `hv.extension()` with your desired backend (e.g., 'bokeh', 'matplotlib', 'plotly') at the start of your notebook or script to initialize the plotting system. Without it, plots will not render.","severity":"gotcha","affected_versions":"All versions"},{"fix":"Install HoloViews with a backend using `pip install holoviews[bokeh]` or `pip install holoviews bokeh`.","message":"HoloViews requires at least one plotting backend library (e.g., Bokeh, Matplotlib, Plotly) to be installed to render plots. Installing `holoviews` alone is often not enough.","severity":"gotcha","affected_versions":"All versions"},{"fix":"Upgrade your Python environment to 3.10 or newer. If you must use an older Python, pin HoloViews to a version less than 1.21.0 (e.g., `holoviews<1.21`).","message":"HoloViews v1.21.0 and newer require Python 3.10 or later. Older Python versions are no longer supported.","severity":"breaking","affected_versions":">=1.21.0"},{"fix":"Install `datashader` (`pip install datashader`) and apply it using `hv.extension('bokeh', enable_mathjax=True)` or explicitly `.opts(tools=['hover'], data_aspect=1).hist().redim.range(y=(None,None))`.","message":"For optimal performance with very large datasets, consider using HoloViews with `datashader`. Datashader can efficiently render millions or billions of points into a fixed-size raster image, preventing browser slowdowns.","severity":"gotcha","affected_versions":"All versions, especially with large datasets"},{"fix":"Upgrade HoloViews to 1.22.1 or newer if using Pandas 3.0+. If you need to stay on an older HoloViews, ensure your Pandas version is compatible (e.g., Pandas 2.x).","message":"HoloViews versions prior to 1.22.1 may have compatibility issues with Pandas 3.0. While efforts are made for forward compatibility, using an older HoloViews with a newer Pandas might lead to unexpected behavior.","severity":"compatibility","affected_versions":"<1.22.1"}],"env_vars":null,"last_verified":"2026-04-11T00:00:00.000Z","next_check":"2026-07-10T00:00:00.000Z"}