matplotlib
Python plotting package
Decision gist · record as of 2026-08-14
Yes. matplotlib is a foundational tool for data visualization in Python with active maintenance, no known vulnerabilities, and a permissive license. The medium install friction (9 dependencies, some compiled) is standard for scientific Python and well-supported across platforms. Install it if you need to visualize data, generate publication-quality figures, or embed plots in applications.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires numpy and other compiled dependencies; installation may take time on first build.
- Python >=3.11 required.
- Medium install friction due to 9 runtime dependencies including compiled packages (numpy, pillow, fonttools, kiwisolver).
License · maintenance · safety
permissive license (permissive) — Permissive PSF License (versions 1.3.0+) allows reproduction, modification, and distribution with attribution. Bundled fonts and libraries carry additional licenses (OFL-1.1, Apache-2.0, MIT, Qhull, FTL/GPL-2.0) but do not restrict use. Safe for commercial and open-source projects.
last release 2026-07-18 (27 days) · last repo commit 2026-08-13 · 23,078 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 232,353,625 downloads/mo, #173 on PyPI
Alternatives
Verify before relying
pip install matplotlib
import matplotlib.pyplot as plt
plt.plot([1, 2, 3], [1, 4, 9])
plt.show()- Performance characteristics for large datasets or real-time animation
- Specific backend support and rendering quality across different output formats
- Integration complexity with web frameworks beyond basic examples
What it is and what it does
matplotlib is a comprehensive visualization library that turns numerical data into publication-ready figures. It works across Python scripts, interactive shells, Jupyter notebooks, web servers, and GUI applications, supporting static images (PNG, PDF, SVG), animations, and interactive plots. The library depends on numpy for array handling, pillow for image I/O, fonttools for typography, and several other packages for rendering and geometry.
Developers use matplotlib to explore data interactively, generate figures for papers and reports, and embed plots in applications. It offers both a high-level pyplot interface (similar to MATLAB) and a lower-level object-oriented API for fine-grained control. The library has been in active development since 2006 and is widely used in scientific, engineering, and data-science workflows.
Use it for
- Exploratory data analysis: plot raw datasets to identify trends and outliers in Jupyter notebooks or scripts
- Publication figures: generate high-quality static plots for academic papers, reports, and presentations in PDF or PNG
- Interactive dashboards: embed plots in web applications or GUI toolkits for user-driven exploration
- Time-series visualization: display temporal data with multiple axes, legends, and annotations
- Scientific visualization: render contours, heatmaps, 3D surfaces, and other specialized plot types
- Animated sequences: create frame-by-frame animations for demonstrations or data storytelling
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
matplotlib is a foundational tool for data visualization in Python with active maintenance, no known vulnerabilities, and a permissive license. The medium install friction (9 dependencies, some compiled) is standard for scientific Python and well-supported across platforms. Install it if you need to visualize data, generate publication-quality figures, or embed plots in applications.
Install
matplotlib on PyPI
Before you install
Medium install friction due to 9 runtime dependencies including compiled packages (numpy, pillow, fonttools, kiwisolver). Actively maintained with recent release (27 days old), 23078 GitHub stars, and no known vulnerabilities. Wheels available for Python 3.11–3.14 across macOS, Linux, and Windows architectures.
Requires numpy and other compiled dependencies; installation may take time on first build. Python >=3.11 required.
License in practice
Permissive PSF License (versions 1.3.0+) allows reproduction, modification, and distribution with attribution. Bundled fonts and libraries carry additional licenses (OFL-1.1, Apache-2.0, MIT, Qhull, FTL/GPL-2.0) but do not restrict use. Safe for commercial and open-source projects.
Quickstart
pip install matplotlib
import matplotlib.pyplot as plt
plt.plot([1, 2, 3], [1, 4, 9])
plt.show()
Verify before relying
- Performance characteristics for large datasets or real-time animation
- Specific backend support and rendering quality across different output formats
- Integration complexity with web frameworks beyond basic examples
Package facts
| License | permissive license permissive |
| Python support | Supports the current Python release >=3.11 |
| Install friction | Medium. Platform-specific wheel |
| Runtime dependencies | 9 packagescontourpycyclerfonttoolskiwisolvernumpypackagingpillowpyparsingpython-dateutil |
| Maintenance | Actively maintained 27 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 232,353,625 / month, #173 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableFramework :: MatplotlibIntended Audience :: EducationIntended Audience :: Science/ResearchLicense :: OSI Approved :: Python Software Foundation LicenseProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Topic :: Scientific/Engineering :: Visualization |
Evidence: matplotlib-3.11.1-cp311-cp311-macosx_10_12_x86_64.whl; matplotlib-3.11.1-cp311-cp311-macosx_11_0_arm64.whl; matplotlib-3.11.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl; matplotlib-3.11.1-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl; matplotlib-3.11.1-cp311-cp311-musllinux_1_2_x86_64.whl; matplotlib-3.11.1-cp311-cp311-win_amd64.whl; matplotlib-3.11.1-cp311-cp311-win_arm64.whl; matplotlib-3.11.1-cp312-cp312-macosx_10_13_x86_64.whl; matplotlib-3.11.1-cp312-cp312-macosx_11_0_arm64.whl; matplotlib-3.11.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl; matplotlib-3.11.1-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl; matplotlib-3.11.1-cp312-cp312-musllinux_1_2_x86_64.whl; matplotlib-3.11.1-cp312-cp312-win_amd64.whl; matplotlib-3.11.1-cp312-cp312-win_arm64.whl; matplotlib-3.11.1-cp313-cp313-macosx_10_13_x86_64.whl; matplotlib-3.11.1-cp313-cp313-macosx_11_0_arm64.whl; matplotlib-3.11.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl; matplotlib-3.11.1-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl; matplotlib-3.11.1-cp313-cp313-musllinux_1_2_x86_64.whl; matplotlib-3.11.1-cp313-cp313t-macosx_10_13_x86_64.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “static animated interactive plots”
- matplotlibmatplotlib creates static, animated, and interactive visualizations…
- mpld3Converts matplotlib plots to interactive D3.js visualizations in the…
- ipymplipympl enables interactive matplotlib plots in Jupyter notebooks and…
Give your agent the search over MCP, or paste the wish link into any chat.
More Visualization packages
ContourPy calculates contours of 2D quadrilateral grids using C++11 algorithms wrapped in Python, offering serial and multithreaded implementations without requiring Matplotlib as a dependency.
Plotly is an interactive, browser-based graphing library that creates charts and visualizations from Python, rendering them as HTML that can be viewed in Jupyter notebooks, standalone files, or web applications.
Generates DOT language source code for graph structures and renders them using the Graphviz graph drawing software installed on your system.
Install it if you need to generate or render graphs from Python.
Streamlit transforms Python scripts into interactive web applications with minimal code, enabling rapid development of data dashboards, reports, and chat interfaces without requiring web development expertise.
Leather is a lightweight Python charting library for quick, no-frills data visualization. It generates charts without requiring perfect styling or extensive configuration.
pydot is a Python interface to Graphviz that lets you create, read, edit, and visualize graphs using the DOT language, with a single runtime dependency (pyparsing) and optional NetworkX interoperability.
See also splot · plotbin · basemap · matplotlib-scalebar · lovelyplots · scikit-plot · mplcursors · mpld3 · palettable · gamma-pytools