pyqtgraph
Scientific Graphics and GUI Library for Python
What it is and what it does
PyQtGraph is a visualization library designed for mathematics, science, and engineering applications that need fast, interactive graphics despite being written entirely in Python. It achieves performance by leveraging numpy for numerical computation, Qt's GraphicsView framework for 2D rendering, and OpenGL for 3D display. The library integrates directly with PyQt5, PyQt6, or PySide6, making it suitable for building custom scientific applications with interactive plots, real-time data visualization, and embedded graphics.
The package requires Python 3.10+ and a compatible Qt framework (Qt 5.15 or Qt 6.8+), with numpy 2.0+ as a core dependency. Additional features like 3D graphics, image processing, HDF5 export, and Jupyter support are available through optional third-party libraries. The library is actively maintained and widely used in scientific and engineering tools.
Use it for:
- Build interactive real-time plotting dashboards for scientific instruments or data acquisition systems.
- Create 2D and 3D visualizations of numerical data with numpy arrays in custom PyQt applications.
- Develop image processing and analysis tools with fast rendering and interactive controls.
- Embed live data plots and graphs in laboratory or engineering software with minimal overhead.
- Visualize scientific simulations or computational results with interactive exploration capabilities.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
PyQtGraph is a pure-Python graphics library for building scientific and engineering visualizations with PyQt5, PyQt6, or PySide6, using numpy for computation and Qt's graphics framework for fast 2D and 3D rendering.
Yes. PyQtGraph is a mature, actively maintained library with low install friction, no known vulnerabilities, and a permissive MIT license. It is the right choice if you need fast, interactive scientific graphics in a PyQt application and are willing to depend on Qt and numpy. If you need standalone plotting without Qt, PyQtGraph may not be necessary.
Install
pyqtgraph on PyPI
pip
pip install pyqtgraphuv
uv add pyqtgraphpoetry
poetry add pyqtgraphInstalling pyqtgraph
Before you install
Low friction: pure Python wheel with only numpy and colorama as runtime dependencies. Active maintenance with recent releases; last commit 2026-08-11. Supports current Python versions and modern Qt versions.
License in practice
MIT license is permissive; you can use, modify, and distribute PyQtGraph with minimal restrictions in commercial or open-source projects.
Quickstart
pip install pyqtgraph
import pyqtgraph as pg
import numpy as np
app = pg.mkQApp()
plot = pg.plot(np.random.normal(size=10))
app.exec()
Requires PyQt5, PyQt6, or PySide6 to be installed separately; Qt 5.15 or Qt 6.8+ required.
Verify before relying
- Whether optional dependencies (scipy, pyopengl, h5py, etc.) are automatically installed or must be added separately for their features.
- Performance characteristics for large datasets or high-frequency updates compared to other visualization approaches.
- Specific minimum Qt patch versions required beyond 5.15 and 6.8+.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 2 — numpy, colorama |
| Maintenance | actively maintained — 271 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,058,230/month — #4,427 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pyqtgraph-0.14.0-py3-none-any.whl
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
PySide6-AddonsPySide6-Addons extends PySide6 with additional…
copyleft · top 5,000 on PyPI
silxsilx provides Python tools for reading,…
permissive · top 15,000 on PyPI
PySide6-EssentialsPySide6 Essentials provides Python bindings to…
copyleft · top 5,000 on PyPI
PyQt6PyQt6 provides Python bindings for Qt v6,…
copyleft · top 5,000 on PyPI
PySide6PySide6 provides Python bindings to the Qt 6.0+…
copyleft · top 5,000 on PyPI
pyvistaqtPyVistaQt integrates VTK 3D visualization with…
permissive · top 15,000 on PyPI
PyQt5PyQt5 provides Python bindings for the Qt v5…
copyleft · top 5,000 on PyPI
magicguiMagicgui builds graphical user interfaces…
permissive · top 15,000 on PyPI
pyqt5-toolsProvides Qt Designer, QML Scene, and QML Test…
copyleft · top 15,000 on PyPI
PyQt6-Qt6Provides the Qt6 runtime libraries required by…
copyleft · top 5,000 on PyPI