PyQtGraph – Scientific Graphics and GUI Library for Python

PyQtGraph is a pure-python graphics and GUI open source library built on PyQt4 / PySide and NumPy. It’s intended for use in mathematics, scientific, and engineering applications.

Despite being written entirely in Python, the library is very fast due to its heavy leverage of NumPy for number crunching and Qt’s GraphicsView framework for fast display.

PyQtGraph makes extensive use of Qt for generating nearly all of its visual output and interfaces.

Features include:

  • Basic 2D plotting in interactive view boxes:
    • Line and scatter plots;
    • Data can be panned/scaled by mouse;
    • Fast drawing for real-time data display and interaction.
  • Image display with interactive lookup tables and level control:
    • Displays most data types (int or float; any bit depth; RGB, RGBA, or luminance);
    • Functions for slicing multidimensional images at arbitrary angles (great for MRI data);
    • Rapid update for video display or real-time interaction.
  • 3D graphics system (requires Python-OpenGL bindings):
    • Volumetric data rendering;
    • 3D surface and scatter plots;
    • Mesh rendering with isosurface generation, per-vertex normals;
    • Interactive viewports rotate/zoom with mouse;
    • Basic 3D scenegraph for easier programming. Scenegraph allowing items to be added/removed from scene with per-item transformations and parent/child relationships;
    • Triangular meshes;
    • Grid/axis items.
  • Data selection/marking and region-of-interest controls:
    • Interactively mark vertical/horizontal locations and regions in plots;
    • Widgets for selecting arbitrary regions from images and automatically slicing data to match.
  • Easy to generate new graphics:
    • 2D graphics use Qt’s GraphicsView framework which is highly capable and mature;
    • 3D graphics use OpenGL;
    • All graphics use a scenegraph for managing items; new graphics items are simple to create.
  • Library of widgets and modules useful for science/engineering applications:
    • Flowchart widget for interactive prototyping;
    • Interface similar to LabView (nodes connected by wires);
    • Parameter tree widget for displaying/editing hierarchies of parameters
      (similar to those used by most GUI design applications);
    • Interactive Python console with exception catching;
      good for debugging/introspection as well as advanced user interaction.
    • Multi-process control allowing remote plotting, Qt signal connection across processes, and very simple in-line parallelization;
    • Dock system allowing the user to rearrange GUI components; Similar to Qt’s dock system but a little more flexible and programmable.
    • Color gradient editor;
    • SpinBox with SI-unit display and logarithmic stepping.

PyQtGraph depends on:

  • Python 2.7 or Python 3.x;
  • A Qt library such as PyQt4, PyQt5, or PySide;
  • numpy.

Support: Documentation, GitHub
Developer: Luke Campagnola and contributors
License: MIT License


PyQtGraph is written in Python. Learn Python with our recommended free books and free tutorials.

Return to Python Visualization Packages Home Page

Popular series
Free and Open Source SoftwareThe largest compilation of the best free and open source software in the universe. Each article is supplied with a legendary ratings chart helping you to make informed decisions.
ReviewsHundreds of in-depth reviews offering our unbiased and expert opinion on software. We offer helpful and impartial information.
Alternatives to Proprietary SoftwareReplace proprietary software with open source alternatives: Google, Microsoft, Apple, Adobe, IBM, Autodesk, Oracle, Atlassian, Corel, Cisco, Intuit, and SAS.
Artificial intelligence iconMachine Learning explores practical applications of machine learning and deep learning from a Linux perspective. This is a new series.
Guide to LinuxNew to Linux? Read our Linux for Starters series. We start right at the basics and teach you everything you need to know to get started with Linux.
System ToolsEssential Linux system tools focuses on small, indispensable utilities, useful for system administrators as well as regular users.
ProductivityLinux utilities to maximise your productivity. Small, indispensable tools, useful for anyone running a Linux machine.
AudioSurveys popular streaming services from a Linux perspective: Amazon Music Unlimited, Myuzi, Spotify, Deezer, Tidal.
Saving Money with LinuxSaving Money with Linux looks at how you can reduce your energy bills running Linux.
Home ComputersHome computers became commonplace in the 1980s. Emulate home computers including the Commodore 64, Amiga, Atari ST, ZX81, Amstrad CPC, and ZX Spectrum.
Now and ThenNow and Then examines how promising open source software fared over the years. It can be a bumpy ride.
Linux at HomeLinux at Home looks at a range of home activities where Linux can play its part, making the most of our time at home, keeping active and engaged.
Linux CandyLinux Candy reveals the lighter side of Linux. Have some fun and escape from the daily drudgery.
DockerGetting Started with Docker helps you master Docker, a set of platform as a service products that delivers software in packages called containers.
Android AppsBest Free Android Apps. We showcase free Android apps that are definitely worth downloading. There's a strict eligibility criteria for inclusion in this series.
Programming BooksThese best free books accelerate your learning of every programming language. Learn a new language today!
Programming TutorialsThese free tutorials offer the perfect tonic to our free programming books series.
Linux Around The WorldLinux Around The World showcases usergroups that are relevant to Linux enthusiasts.
Stars and StripesStars and Stripes is an occasional series looking at the impact of Linux in the USA.

Share your Thoughts

This site uses Akismet to reduce spam. Learn how your comment data is processed.