Veusz is a multiplatform GUI scientific plotting package and plotting module written in Python, designed for publication-quality output. It is implemented using PyQt and numpy, with some C++ extension modules for speed. It is licensed under the GPL. In Veusz, plots are built out of a number of widgets in a hierarchical, object-oriented manner. The appearance of the plot and what is plotted can be changed by modifying settings or formatting settings of these widgets. The document can easily be manipulated in structure by rearranging the widgets. The program can read data from a number of sources, including text, CSV, HDF5 and FITS formats, and from external programs. Data analysis can be done within Veusz, by creating datasets can be linked to existing ones using Python expressions and in other ways. Simple fitting of data can also be done within the program. Plots can be exported in several formats, including PDF, Postscript, SVG and EMF.
Although Veusz presents an easy-to-use graphical interface, it can also be used as a Python module for plotting, exposing the same object-oriented interface as seen in the GUI. As the saved file format for Veusz is a simple Python script containing commands which generate the plot, the user can easily switch back and forth between the GUI and module interfaces. The command interface is also usable by piping text into the program, allowing non-Python programs to use the program for plotting.
In addition to these interfaces Veusz can be extended using plugins written in Python. These plugins allow new file formats to be supported, can create new datasets by transforming existing datasets or can manipulate the document in arbitrary ways.
In this talk I will briefly discuss how Veusz is designed, then demonstrate the capabilities of Veusz and describe how it is useful for the Python-using and non-Python-using scientist or engineer.