PyQwt: fast and easy data plotting with Numerical Python

PyQwt has a new home

GNU General Public License with exceptions for use with the
Educational, Non-Commercial and Commercial releases of Qt, PyQt and sip
Get the latest PyQwt release and check for patches
Author: Gerard Vermeulen
PyQVtk to visualize data in 3D

Did you ever want to plot data interactively using Python and Qt?
PyQwt lets you do this on Linux, Unix and Windows from:

Here is a screen shot of the BodeDemo widget.

BodeDemo demonstrates mouse controlled zooming and coordinate tracking.

PyCute demonstrates how to make a fancy plot by typing 8 lines into the Python interpreter.

Above, you see a screen shot of the PyCute shell, produced by the last statement in the interpreter.

Below, you see a screen shot of the Plot widget, produced by the first statements in the interpreter.

What is PyQwt?

PyQwt is being developed on Linux Mandrake-8.2, Linux From Scratch-4.0 and Win4Lin with Python-2.2.2/Python-2.3, Numeric-23.0, and PyQt-3.7&sip-3.7/PyQt-3.6&sip-3.6/PyQt-3.5&sip-3.5, Qt-2.3.0-NC/Qt-2.3.1/Qt-3.0.x/Qt-3.1.x.

You'll find also some obsolete unsupported releases of PyQwt for Qt-2.x.x and Qt-3.0.x based on older versions of PyQt and sip in the Museum, but I advise you to upgrade to the latest version of PyQt and sip.

There exist still a set of older Python bindings for PyQt/sip-0.10.1, Qwt-0.2 and Qt-1.x.


PyQwt includes many examples and HTML documentation with installation instructions and a reference. The reference lists the Python calls to PyQwt that differ from the corresponding C++ calls to Qwt. PyQwt contains also the excellent documentation for the Qwt library.

More screen shots and source code

Unix/Linux/Windows source code or a Windows binary installer

If you want to use PyQwt in a commercial product, you can, provided that:

  1. you buy the necessary licenses for Qt and PyQt.
  2. you accept the terms of the GNU Public License with the exceptions specific to PyQwt.
  3. you rebuild PyQwt with your commercial versions of Qt and PyQt along the lines of the Windows build instructions or the Unix build instructions.
Feedback on the Windows build instructions is very much appreciated.


Currently, there are no snapshots.

Help: the future commercial use of PyQwt for Windows is in peril!

Maintaining PyQwt for Windows is a hobby and depends on the availability of non-commercial versions of Qt and PyQt. Phil Thompson, the author of PyQt has published a technologically very interesting roadmap for the future development of the code generator that is used to build PyQt and PyQwt. The new code generator will not work with Qt-2.3-NonCommercial (the old code generator will be maintained to make it possible to write extensions for PyQt that are compatible with both code generators). From my point of view, the easiest solution is that the new code generator works with Qt-NonCommercial. However, Phil has his reasons not to do so.

If you are using PyQt/PyQwt in a commercial product on Windows, you can help me to convince Phil to make maintaining PyQwt for Windows as easy as possible by adding you and/or your company/institution to the following list:

iqt: the Command Line Interpreter & the Graphical User Interface

iqt enables you to create and control PyQt widgets from the Python command line interpreter (or IPython).

The programming style 'imposed' by PyQt (and other GUI toolkits) is to create an application instance + some widgets and to enter into an event loop that locks you from the command line interpreter. iqt gives you both worlds: you can type Python statements in the interpreter and interact with your PyQt widgets at the same time.

iqt works by hooking a function handling a limited number of events on the event hook of the readline module. The GNU readline library closes the event loop by calling the hooked function at a maximum rate of 10 times per second while reading your keyboard input.

This method can be applied to any GUI toolkit that permits to process events out of the main event loop and any Python interpreter with a decent readline module.

Oh Bill, this seems to exclude Python compiled with MSVC. Any input welcome!

PyQVtk: data visualuzation in 3D

This is an improved version of the QVTKRenderWindowInteractor widget that comes with Vtk-4.0 and Vtk-4.2 It has been checked into the VTK-CVS.

Other useful Packages for Scientific and Numerical Computing


Use only obsolete releases, if you REALLY need: they are unsupported.

New in PyQwt-3.5

A minor release:

  1. Upgrade to PyQt-3.5/sip-3.5 and Qt-3.1.0.
  2. Builds by default with Qwt-2002-08-07 or optionally with Qwt-2002-10-13.
  3. Qwt documentation is now also included in binary packages.
  4. Latest change in version numbering scheme :-) From now on I will track the PyQt/sip versions with a possible extra a, b, c, ... for bugfix releases.
Get PyQwt-3.5.tar.bz2 for PyQt-3.5/sip-3.5, PyQt-3.4/sip-3.4 or PyQt-3.3.2/sip-3.3.2.

New in PyQwt-sip34_20020807p1

A minor release:

  1. PyCute, the Python shell for interpreter driven plotting, has now two versions: one based on QTextEdit for Qt-3.0.x and one based on QMultiLineEdit for Qt-2.x.x.
  2. tested with PyQt-3.4/sip-3.4 and some later snapshots of PyQt and sip.
  3. fixes a Qwt-20020807 snapshot problem on Windows.
  4. a PyQwt Windows installer for the non commercial versions of Qt and PyQt (thanks to Phil Thompson for his support).
  5. many, many changes (oops) to pass the object oriented programming facilities of the Qwt C++ classes on to Python.
  6. more examples: (Serge Boiko) and demonstrates the advanced features of Qwt in Python!
There is no need to get the obsolete PyQwt-sip34_20020807p1.tar.bz2.

New in PyQwt-sip34_20020807

A minor release:

  1. allows interpreter driven data plotting with, a PyQt based Python shell
  2. requires PyQt-3.4/sip-3.4 or PyQt-3.3.2/sip-3.3.2
  3. interpreter driven data plotting with, a PyQt based Python shell
  4. includes the full source three of the Qwt-20020807 snapshot
There is no need to get the obsolete PyQwt-sip34_20020807.tar.bz2.

New in PyQwt-sip332_041

A minor release:

  1. requires PyQt-3.3.2/sip-3.3.2
  2. simpified script, thanks to improvements in PyQt and sip.
  3. Windows *.exe installer for Python-2.2.1 and Numeric-21.3.
There is no need to get the obsolete PyQwt-sip332_041.tar.bz2.

New in PyQwt-sip324_041

A major release:

  1. requires PyQt-3.2.4/sip-3.2.4.
  2. implements practically all public and protected member functions of Qwt-0.4.1.
  3. source distribution includes full source tree of Qwt-0.4.1.
  4. simplified script, thanks to improvements in PyQt and sip.
  5. Windows *.exe installer for Python-2.2 and Numeric-21.0.
Get the obsolete PyQwt-sip324_041.tar.bz2 if you need PyQwt for PyQt-3.2.4/sip-3.2.4.

New in PyQwt-20011206

A major release:

  1. builds with PyQt-2.5/sip-2.5 and Qt-2.x.x.
  2. builds with PyQt-3.0/sip-3.0 and Qt-2.3.1.
  3. builds with PyQt-3.0/sip-3.0 and Qt-3.0.0.
  4. builds with distutils to a decent Python package with WARNING: therefore, PyQwt will be installed to a different directory. PLEASE, remove all files belonging to a previous installation, before installing this version of PyQwt.
  5. contains the full qwt-0.4.0 distribution
Get the obsolete PyQwt-20011206.tar.bz2 if you need PyQwt for PyQt-2.5/sip-2.5 or PyQt-3.0/sip-3.0.

New in PyQwt-0.29.94

A bug fix release:

  1. fixed bug in -- examples did not install on Unix/Linux
  2. documented installation of distutils on Unix/Linux -- configure/make will be deprecated.
Get the obsolete PyQwt-0.29.94.tar.bz2 if you need PyQwt for PyQt-2.4/sip-2.4.

New in PyQwt-0.29.93

A bug fix release:

  1. fixed bug in QwtPlot.enableLegend(), and added documentation (here, PyQwt extends Qwt).
  2. improved distutils support on Windows (does not depend on nmake anymore).
  3. give the examples on Windows an extension .pyw to zap the annoying DOS box.

New in PyQwt-0.29.92

A bug fix release:

  1. fixed bug in parsing third argument of QwtPlot.setCurveData(x, y, e).
  2. finished

New in PyQwt-0.29.91

A major release:

  1. compatible with PyQt-2.5/sip-2.5 and PyQt-2.4/sip-2.4.
  2. compatible with Numeric-20.2.0, and lower.
  3. *.exe installer for Windows (requires Qt-2.3.0 Non Commercial).
  4. build instructions for Windows with other versions of Qt.
  5. HTML/SGML documentation with installation instructions and a reference listing the Python calls to PyQwt that are different from the corresponding C++ calls to Qwt.
  6. fixed reference counting bugs for NumPy arrays in the classes QwtAutoScale, QwtCurve, QwtPlot and QwtSpline.
  7. new methods:
  8. changed methods:
  9. removed methods (incompatible with Python, because dangerous in C++):