pyqtgraph/doc/source/exporting.rst
Kenneth Lyons ec445e7601 HDF5Exporter handling of ragged curves with tests (#1072)
* HDF5Exporter handles ragged curves by saving them into different datasets based on their names.

* Add HDF5Exporter tests

* Document HDF5Exporter

* Fix tmp file path
2019-11-12 09:01:49 -08:00

74 lines
3.0 KiB
ReStructuredText

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:
#. 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).
#. Select an export format.
#. Change any desired export options.
#. 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 :class:`~pyqtgraph.PlotItem` to a HDF5 file if
h5py_ is installed. This exporter supports :class:`~pyqtgraph.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.
.. _h5py: https://www.h5py.org/
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')
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.