Exporting#

PyQtGraph provides a variety of export formats for all 2D graphics. For 3D graphics, see Exporting 3D Graphics below.

Exporting from the GUI#

Any 2D graphics can be exported by right-clicking on the graphic, then selecting ‘export’ from the context menu. This will display the export dialog in which the user must:

  1. Select an item (or the entire scene) to export. Selecting an item will cause the item to be hilighted in the original graphic window (but this hilight will not be displayed in the exported file).

  2. Select an export format.

  3. Change any desired export options.

  4. Click the ‘export’ button.

Export Formats#

  • Image - PNG is the default format. The exact set of image formats supported will depend on your Qt libraries. However, common formats such as PNG, JPG, and TIFF are almost always available.

  • SVG - Graphics exported as SVG are targeted to work as well as possible with both Inkscape and Adobe Illustrator. For high quality SVG export, please use PyQtGraph version 0.9.3 or later. This is the preferred method for generating publication graphics from PyQtGraph.

  • CSV - Exports plotted data as CSV. This exporter _only_ works if a PlotItem is selected for export.

  • Matplotlib - This exporter opens a new window and attempts to re-plot the data using matplotlib (if available). Note that some graphic features are either not implemented for this exporter or not available in matplotlib. This exporter _only_ works if a PlotItem is selected for export.

  • Printer - Exports to the operating system’s printing service. This exporter is provided for completeness, but is not well supported due to problems with Qt’s printing system.

  • HDF5 - Exports data from a PlotItem to a HDF5 file if h5py is installed. This exporter supports PlotItem objects containing multiple curves, stacking the data into a single HDF5 dataset based on the columnMode parameter. If data items aren’t the same size, each one is given its own dataset.

Exporting from the API#

To export a file programatically, follow this example:

import pyqtgraph as pg
import pyqtgraph.exporters

# generate something to export
plt = pg.plot([1,5,2,4,3])

# create an exporter instance, as an argument give it
# the item you wish to export
exporter = pg.exporters.ImageExporter(plt.plotItem)

# set export parameters if needed
exporter.parameters()['width'] = 100   # (note this also affects height parameter)

# save to file
exporter.export('fileName.png')

To export the overall layout of a GraphicsLayoutWidget grl, the exporter initialization is

exporter = pg.exporters.ImageExporter( grl.scene() )

instead.

Exporting 3D Graphics#

The exporting functionality described above is not yet available for 3D graphics. However, it is possible to generate an image from a GLViewWidget by using QGLWidget.grabFrameBuffer or QGLWidget.renderPixmap:

glview.grabFrameBuffer().save('fileName.png')

See the Qt documentation for more information.