Install & Compatibility
Where this runs
tested against v0.14.0 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslpy 3.10–3.925 runs
installs and imports cleanly · install 0.0s · import 0.000s · 97.5MB
glibcpy 3.10–3.925 runs
installs and imports cleanly · install 4.1s · import 0.000s · 94MB
98MB installed
● package 98MB
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
pyqtgraph
✓ import pyqtgraph as pg
✗ import pyqtgraph as pg
This quickstart demonstrates how to create a basic line plot using PyQtGraph. It sets up a QApplication, creates a `GraphicsLayoutWidget` as the main window, adds a plot item, and plots a simple list of data. Crucially, it uses `pg.mkQApp` for application initialization and `app.exec_()` to start the Qt event loop, allowing the GUI to run.
import pyqtgraph as pg
from pyqtgraph.Qt import QtWidgets
# Always start by creating a QApplication
app = pg.mkQApp("PyQtGraph Quickstart")
# Create a GraphicsLayoutWidget (a window to hold plots)
win = pg.GraphicsLayoutWidget(show=True, title="Basic Plot")
win.resize(800, 500)
win.setWindowTitle('PyQtGraph Quickstart Example')
# Enable antialiasing for prettier plots
pg.setConfigOptions(antialias=True)
# Add a plot item to the window
p = win.addPlot(title="Simple Line Plot")
# Generate some data
data = [1, 5, 2, 4, 3, 8, 9, 1, 2, 3, 5]
# Plot the data
p.plot(data)
# Start the Qt event loop if running as a script
if __name__ == '__main__':
QtWidgets.QApplication.instance().exec_()
Debug
Known issues
breakingThe classes `MetaArray`, `MultiPlotItem`, and `MultiPlotWidget` have been removed.fixReview your code for usage of these deprecated classes. For multi-plotting, consider using `GraphicsLayoutWidget` with multiple `PlotItem` instances or alternative approaches.
affects: 0.14.0
breakingSupport for Python 3.8 and NumPy 1.20 has been dropped.fixUpgrade your Python environment to 3.9 or higher and NumPy to version 1.21 or higher to ensure compatibility.
affects: 0.13.4 and later
breakingMinimum supported Qt versions have been increased to Qt5 5.15 and Qt6 6.2+.fixEnsure your installed Qt binding (PyQt5, PyQt6, PySide2, or PySide6) meets these minimum version requirements. Upgrade your Qt binding if necessary.
affects: 0.13.0 and later
deprecatedThe `GraphicsObject::parentChanged` method has been deprecated.fixAvoid using `GraphicsObject::parentChanged`. Look for alternative signals or methods if you were relying on this for parent change detection.
affects: 0.13.1 and later
gotchaForgetting to start the Qt event loop or calling `QApplication.exec_()` (or `exec()`) can lead to the GUI window appearing briefly and then closing, or not appearing at all.fixAlways include `app.exec_()` (or `app.exec()` on some platforms/Qt versions) at the end of your script after setting up your GUI, typically guarded by `if __name__ == '__main__':`.
affects: All versions
Upgrade
Version history
0.14.0latest on PyPI · released Nov 16, 2025
Audit
Dependencies
numpyrequiredRequired for numerical operations and data handling.
PyQt5 / PyQt6 / PySide2 / PySide6optionalOne of these Qt bindings is required for the graphical user interface components to function.