hvplot
A high-level plotting API for the PyData ecosystem built on HoloViews.
What it is and what it does
hvPlot is a high-level visualization library that sits on top of HoloViews and plotting backends like Bokeh, Matplotlib, and Plotly. It exposes a familiar `.hvplot()` API modeled after Pandas' `.plot()` method, so if you know how to plot with Pandas, you can immediately use hvPlot to create interactive visualizations. It works with multiple data sources—Pandas DataFrames, Polars, XArray, Dask, and others—and lets you switch between rendering backends without changing your code.
The library is designed for three main workflows: exploratory data analysis (interactive plots in notebooks), reporting (static or embedded visualizations), and building data apps (combining plots with interactive widgets via Panel). It abstracts away much of the complexity of configuring HoloViews and Bokeh directly, making interactive visualization accessible to developers who want a simple, Pandas-like interface.
Use it for:
- Exploratory data analysis in Jupyter notebooks with interactive hover tooltips and zoom/pan controls.
- Building interactive dashboards and data apps by combining hvplot with Panel widgets for filtering and parameter control.
- Creating publication-ready plots that can be exported to static images or embedded in web applications.
- Visualizing time-series data from Pandas DataFrames or XArray datasets with linked axes and cross-filtering.
- Rapid prototyping of multi-backend visualizations (Bokeh, Matplotlib, Plotly) without rewriting plot code.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
hvPlot provides a high-level plotting API that wraps HoloViews, Bokeh, and other visualization backends, letting you create interactive plots from Pandas, Polars, XArray, Dask, and other data sources using a familiar `.plot()` syntax.
Yes. hvPlot is actively maintained, has no known vulnerabilities, and offers low install friction. It's well-suited if you want interactive plots without learning HoloViews or Bokeh directly. Choose it if you're already comfortable with Pandas' `.plot()` API and want to upgrade to interactivity; skip it if you need fine-grained control over plot styling or are committed to a single backend like pure Matplotlib.
Install
hvplot on PyPI
pip
pip install hvplotuv
uv add hvplotpoetry
poetry add hvplotInstalling hvplot
Before you install
Low install friction with a pure-Python wheel. Depends on eight runtime packages including holoviews, bokeh, pandas, and numpy—all stable, widely-used libraries. Actively maintained with recent commits and no known vulnerabilities.
License in practice
BSD license is permissive; you can use, modify, and distribute hvplot freely in commercial and open-source projects with minimal restrictions.
Quickstart
pip install hvplot
import pandas as pd
import hvplot.pandas
df = pd.DataFrame({'x': [1, 2, 3], 'y': [4, 5, 6]})
df.hvplot(kind='scatter', x='x', y='y')
Requires Python 3.10 or later. Bokeh (or Matplotlib/Plotly) must be installed for rendering; hvplot does not include a default backend.
Verify before relying
- Whether the package supports all advertised data sources (Polars, Streamz, Intake, GeoPandas, NetworkX) equally well or if some have limited integration.
- Performance characteristics when working with very large datasets or high-frequency interactive updates.
- Extent of customization available beyond the high-level API for advanced use cases.
Package facts
| License | BSD (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 8 — bokeh, colorcet, holoviews, numpy, packaging, pandas, panel, param |
| Maintenance | actively maintained — 239 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,412,041/month — #3,937 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: hvplot-0.12.2-py3-none-any.whl
Tags
More Libraries packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
python-dateutilProvides parsing, arithmetic, and recurrence…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
pytestpytest is a testing framework that lets you…
permissive · top 100 on PyPI
holoviewsHoloViews lets you declare data structure and…
permissive · top 5,000 on PyPI
ridgeplotridgeplot creates interactive ridgeline plots…
permissive · top 15,000 on PyPI
bokehBokeh is an interactive visualization library…
permissive · top 5,000 on PyPI
bqplotbqplot is a 2-D interactive plotting library…
permissive · top 15,000 on PyPI
plotly-expressPlotly Express is now a compatibility shim that…
permissive · top 5,000 on PyPI
histHist provides a user-friendly interface for…
permissive · top 15,000 on PyPI
plotlyPlotly is an interactive, browser-based…
permissive · top 1,000 on PyPI
pandaspandas provides fast, flexible data structures…
permissive · top 100 on PyPI
colorcetColorcet provides a collection of perceptually…
unclear · top 5,000 on PyPI
jupyter_bokehRenders Bokeh visualizations directly within…
permissive · top 15,000 on PyPI