python-nvd3
Python NVD3 - Chart Library for d3.js
What it is and what it does
Python-nvd3 is a Python wrapper that converts chart definitions into NVD3 JavaScript code and HTML, letting you define interactive charts in Python and render them for web display. You instantiate a chart class (pieChart, lineChart, barChart, etc.), add data series, and call buildcontent() to generate the HTML string containing both the data and the NVD3 rendering code.
The package has no runtime dependencies—it generates static HTML/JavaScript output—but requires you to separately install the NVD3 and D3 JavaScript libraries (via npm/bower) into your project directory so the generated HTML can reference them. The generated charts can be embedded in web applications, saved to files, or displayed in IPython notebooks. The project is in production/stable status but has not been actively maintained for over two years.
Use it for:
- Generate pie, line, and bar charts for a Flask or Django web application without writing JavaScript.
- Create interactive data visualizations in IPython notebooks by converting Python data into NVD3 charts.
- Embed pre-built chart templates (scatter, stacked area, multi-bar) in a reporting dashboard.
- Export chart HTML to static files for inclusion in documentation or email reports.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Generates interactive NVD3 charts (pie, line, bar, scatter, and others) as HTML/JavaScript from Python code, wrapping the NVD3 charting library built on D3.js.
Yes, with conditions. Install if you need to generate NVD3 charts from Python and can manage the separate JavaScript dependency setup (npm/bower for D3 and NVD3). The package is stable and permissively licensed, but maintenance has stalled—the underlying NVD3 and D3 libraries are also aging, so verify that their versions (3.5.17 and 1.8.6) meet your security and browser-compatibility needs before committing to production use.
Install
python-nvd3 on PyPI
pip
pip install python-nvd3uv
uv add python-nvd3poetry
poetry add python-nvd3Installing python-nvd3
Before you install
High install friction: the package itself has no runtime dependencies, but requires separate installation of D3 and NVD3 JavaScript libraries via npm/bower (d3#3.5.17 and nvd3#1.8.6), which must be downloaded and configured in your project separately. The project is aging—last release was 844 days ago—though the repository remains active and has not been archived.
License in practice
MIT license is permissive; you may use, modify, and distribute this package freely in commercial and private projects with minimal restrictions, provided you retain the license notice.
Quickstart
pip install python-nvd3
from nvd3 import pieChart
chart = pieChart(name='myChart', height=450, width=450)
chart.add_serie(y=[3, 4, 1], x=['Orange', 'Banana', 'Kiwi'])
chart.buildcontent()
print(chart.htmlcontent)
D3 (3.5.17) and NVD3 (1.8.6) JavaScript libraries must be installed separately via npm/bower into your project directory; the generated HTML will reference them via relative paths (bower_components/).
Verify before relying
- Whether the required NVD3 (1.8.6) and D3 (3.5.17) versions are still maintained and secure.
- Current state of browser compatibility for the generated charts, given the age of the underlying libraries.
- Whether Python 2.7 support (listed in classifiers) is still functional or merely historical.
Package facts
| License | MIT (permissive) |
| Python support | not specified |
| Install friction | high — source build required |
| Runtime dependencies | none |
| Maintenance | aging — 844 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 2,382,841/month — #3,096 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: python-nvd3-0.16.0.tar.gz
Keywords: plot, graph, nvd3, d3
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
mpld3Converts matplotlib plots to interactive D3.js…
permissive · top 15,000 on PyPI
quickchart.ioGenerates static chart images by encoding…
permissive · top 15,000 on PyPI
leatherLeather is a lightweight Python charting…
permissive · top 1,000 on PyPI
pygaljsProvides JavaScript assets from the pygal.js…
permissive · top 15,000 on PyPI
highcharts-coreGenerates interactive Highcharts data…
unclear · top 15,000 on PyPI
plotlyPlotly is an interactive, browser-based…
permissive · top 1,000 on PyPI
asciichartpyRenders line charts as ASCII art in the console…
permissive · top 15,000 on PyPI
chart-studioProvides utilities to interface with Plotly's…
permissive · top 15,000 on PyPI
brancaBranca generates HTML and JavaScript pages from…
permissive · top 5,000 on PyPI
streamlit-echartsRenders interactive ECharts visualizations in…
permissive · top 15,000 on PyPI