Friday, July 29, 2016

Scientific Graphics and GUI Library for Python - PyQtGraph

[] PyQtGraph is a pure-python graphics and GUI library built on PyQt4 / PySide and numpy. It is intended for use in mathematics / scientific / 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 is distributed under the MIT open-source license.

Main Features:
  • Basic 2D plotting in interactive view boxes
    • Line and scatter plots
    • Data can be panned/scaled by mouse
    • Fast drawing for realtime 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 realtime interaction
  • 3D graphics system (requires Python-OpenGL bindings)
    • Volumetric data rendering
    • 3D surface and scatter plots
    • Mesh rendering with isosurface generation
    • Interactive viewports rotate/zoom with mouse
    • Basic 3D scenegraph for easier programming
  • 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.
      Great 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 
More information

No comments:

Post a Comment