PyQtGraph =========
A pure-python graphics library thatm uses the Qt framework.
Copyright 2026 PyQtGraph developers
PyQtGraph is intended for use in mathematics / scientific / engineering applications. Despite being written entirely in python, the library is fast due to its heavy leverage of numpy for number crunching, Qt's GraphicsView framework for 2D display, and OpenGL for 3D display.
Requirements ------------
PyQtGraph has adopted SPEC 0.
This project supports:
- Python versions released within the last 3 years
- NumPy, SciPy and matplotlib versions released within the last 2 years
- Qt5 5.15 or Qt6 6.8+
- Python 3.12+
- Qt 5.15 or 6.8+
- PyQt5, or
numpy2.2+
Through 3rd party libraries, additional functionality may be added to PyQtGraph, see the table below for a summary.
| Library | Added functionality |
| -------------- | - |
| [scipy] |
- Image processing through [
ndimage] - Data array filtering through [
signal] - Export in hdf5 format
- Add a collection of perceptually uniform colormaps
- Export of PlotItem in matplotlib figure
- Add matplotlib collection of colormaps
- CUDA-enhanced image processing
- Faster image processing
- Report issues on the GitHub issue tracker
- Post questions to
- From PyPI
- From conda
- Many linux package repositories have release versions.
- |
| [
h5py] | colorcet] | matplotlib] | cupy] | numba] | jupyter_rfb]| |
[scipy]: https://github.com/scipy/scipy
[ndimage]: https://docs.scipy.org/doc/scipy/reference/ndimage.html
[signal]: https://docs.scipy.org/doc/scipy/reference/signal.html
[h5py]: https://github.com/h5py/h5py
[colorcet]: https://github.com/holoviz/colorcet
[matplotlib]: https://github.com/matplotlib/matplotlib
[numba]: https://github.com/numba/numba
[cupy]: https://docs.cupy.dev/en/stable/install.html
[jupyter_rfb]: https://github.com/vispy/jupyter_rfb
Support -------
Installation Methods --------------------
pip install pyqtgraph
* Latest development version: pip install git+https://github.com/pyqtgraph/pyqtgraph@master
conda install -c conda-forge pyqtgraph
The official documentation lives at pyqtgraph.readthedocs.io
The easiest way to get familiar with PyQtGraph is to browse through the examples; run
python -m pyqtgraph.examples to launch the examples application.
Benchmarking ------------
There is support for the asv benchmarking library. Should a user have cuda installed
on their system, they should edit asv.conf.json file, and add the entry
"cupy-cuda##x": [""] to the matrix.req section (where ## is the version of cuda is
the version of cuda installed on your machine). It relavent section should look like
the the following.
...
"req": {
"pyqt6": [""],
"pyqt5": [""],
"PySide6-Essentials": [""],
"numba": [""],
"cupy-cuda##x": [""] // add this line, replace ## with cuda version
}
...
As a variety of different versions of python and Qt bindings are tested, running the full benchmark suite can take a while!
Used By -------
Here is a partial listing of some of the applications that make use of PyQtGraph!
- ACQ4
- Antenna Array Analysis
- argos
- Atomize
- BEC Widgets
- EnMAP-Box
- EO Time Series Viewer
- ephyviewer
- Exo-Striker
- GraPhysio
- HussariX
- Joulescope
- MaD GUI
- neurotic
- Bio Silicon Intelligence System
- Orange3
- PatchView
- pyplotter
- PyMeasure
- PySpectra
- rapidtide
- Semi-Supervised Semantic Annotator
- STDF-Viewer
- strange-attractors-qt
- QT-DataViewer
- TemCompanion