# Python grammar of graphics & declarative plotting libraries

> Describe what to plot and let the library build the chart. 6 tools, ranked by GitHub stars.

Libraries where a chart is described as a mapping from data columns to visual channels such as position, color and size, rather than drawn step by step. plotnine and Lets-Plot follow the ggplot2 grammar of graphics, Vega-Altair builds on Vega-Lite, and HoloViews and hvPlot attach plotting to annotated data and dataframes.

| # | Tool | GitHub stars | Commits (12 mo) | License | Description |
|---:|---|---:|---:|---|---|
| 1 | [Vega-Altair](https://awesomedataviz.com/tools/altair/) | 10,509 | 156 | BSD-3-Clause | Declarative statistical visualizations, based on Vega-Lite. |
| 2 | [plotnine](https://awesomedataviz.com/tools/plotnine/) | 4,780 | 514 | MIT | Grammar of graphics for Python, based on R's ggplot2. |
| 3 | [ggpy](https://awesomedataviz.com/tools/ggpy/) | 3,688 | 0 | BSD-2-Clause | Plotting system based on R's ggplot2. |
| 4 | [HoloViews](https://awesomedataviz.com/tools/holoviews/) | 2,915 | 326 | BSD-3-Clause | Complex and declarative visualizations from annotated data. |
| 5 | [Lets-Plot](https://awesomedataviz.com/tools/lets-plot/) | 1,783 | 511 | MIT | Grammar of graphics plotting library for Python and Kotlin, by JetBrains. |
| 6 | [hvPlot](https://awesomedataviz.com/tools/hvplot/) | 1,359 | 38 | BSD-3-Clause | High-level plotting API for pandas, xarray, Dask, NetworkX and other data structures, built on HoloViews. |

Source: https://awesomedataviz.com/categories/python-grammar-of-graphics/ · Data updated 2026-11-01 · Content: CC BY 4.0, Awesome Dataviz (https://awesomedataviz.com).
