PyQtGraph Changelog

What's new in PyQtGraph 0.10.0

Apr 14, 2017
  • New Features:
  • PyQt5 support
  • Options for interpreting image data as either row-major or col-major
  • InfiniteLine and LinearRegionItem can have attached labels
  • DockArea:
  • Dock titles can be changed after creation
  • Added Dock.sigClosed
  • Added TextItem.setColor()
  • FillBetweenItem supports finite-connected curves (those that exclude nan/inf)
  • API / behavior changes:
  • Improved ImageItem performance for some data types by scaling LUT instead of image
  • Change the defaut color kwarg to None in TextItem.setText() to avoid changing the color every time the text is changed.
  • FFT plots skip first sample if x-axis uses log scaling
  • Multiprocessing system adds bytes and unicode to the default list of no-proxy data types
  • Version number scheme changed to be PEP440-compliant (only affects installations from non-release git commits)
  • Bugfixes:
  • Fix for numpy API change that caused casting errors for inplace operations
  • Fixed git version string generation on python3
  • Fixed setting default values for out-of-bound points in pg.interpolateArray
  • Fixed plot downsampling bug on python 3
  • Fixed invalid slice in ImageItem.getHistogram
  • DockArea:
  • Fixed adding Docks to DockArea after all Docks have been removed
  • Fixed DockArea save/restoreState when area is empty
  • Properly remove select box when export dialog is closed using window decorations
  • Remove all modifications to python builtins
  • Better Python 2.6 compatibility
  • Fix SpinBox decimals
  • Fixed numerous issues with ImageItem automatic downsampling
  • Fixed PlotItem average curves using incorrect stepMode
  • Fixed TableWidget eating key events
  • Prevent redundant updating of flowchart nodes with multiple inputs
  • Ignore wheel events in GraphicsView if mouse interaction is disabled
  • Correctly pass calls to QWidget.close() up the inheritance chain
  • ColorMap forces color inputs to be sorted
  • Fixed memory mapping for RemoteGraphicsView in OSX
  • Fixed QPropertyAnimation str/bytes handling
  • Fixed __version__ string update when using `setup.py install` with newer setuptools
  • Maintenance:
  • Image comparison system for unit testing plus tests for several graphics items
  • Travis CI and coveralls/codecov support
  • Add examples to unit tests

New in PyQtGraph 0.9.10 (Dec 27, 2014)

  • Fixed installation issues with more recent pip versions.

New in PyQtGraph 0.9.9 (Dec 27, 2014)

  • API / behavior changes:
  • Dynamic import system abandoned; pg now uses static imports throughout.
  • Flowcharts and exporters have new pluggin systems
  • Version strings:
  • __init__.py in git repo now contains latest release version string
  • (previously, only packaged releases had version strings).
  • installing from git checkout that does not correspond to a release
  • commit will result in a more descriptive version string.
  • Speed improvements in functions.makeARGB
  • ImageItem is faster by avoiding makeQImage(transpose=True)
  • ComboBox will raise error when adding multiple items of the same name
  • ArrowItem.setStyle now updates style options rather than replacing them
  • Renamed GraphicsView signals to avoid collision with ViewBox signals that
  • are wrapped in PlotWidget: sigRangeChanged => sigDeviceRangeChanged and sigTransformChanged => sigDeviceTransformChanged.
  • GLViewWidget.itemsAt() now measures y from top of widget to match mouse
  • event position.
  • Made setPen() methods consistent throughout the package
  • Fix in GLScatterPlotItem requires that points will appear slightly more opaque
  • (so you may need to adjust to lower alpha to achieve the same results)
  • New Features:
  • Added ViewBox.setLimits() method
  • Adde ImageItem downsampling
  • New HDF5 example for working with very large datasets
  • Removed all dependency on scipy
  • Added Qt.loadUiType function for PySide
  • Simplified Profilers; can be activated with environmental variables
  • Added Dock.raiseDock() method
  • ComboBox updates:
  • Essentially a graphical interface to dict; all items have text and value
  • Assigns previously-selected text after list is cleared and repopulated
  • Get, set current value
  • Flowchart updates
  • Added Flowchart.sigChartChanged
  • Custom nodes may now be registered in sub-menu trees
  • ImageItem.getHistogram is more clever about constructing histograms
  • Added FillBetweenItem.setCurves()
  • MultiPlotWidget now has setMinimumPlotHeight method and displays scroll bar when plots do not fit inside the widget.
  • Added BarGraphItem.shape() to allow better mouse interaction
  • Added MeshData.cylinder
  • Added ViewBox.setBackgroundColor() and GLViewWidget.setBackgroundColor()
  • Utilities / debugging tools
  • Mutex used for tracing deadlocks
  • Color output on terminal
  • Multiprocess debugging colors messages by process
  • Stdout filter that colors text by thread
  • PeriodicTrace used to report deadlocks
  • Added AxisItem.setStyle()
  • Added configurable formatting for TableWidget
  • Added 'stepMode' argument to PlotDataItem()
  • Added ViewBox.invertX()
  • Docks now have optional close button
  • Added InfiniteLine.setHoverPen
  • Added GLVolumeItem.setData
  • Added PolyLineROI.setPoints, clearPoints, saveState, setState
  • Added ErrorBarItem.setData
  • Bugfixes:
  • PlotCurveItem now has correct clicking behavior--clicks within a few px
  • of the line will trigger a signal.
  • Fixes related to CSV exporter:
  • CSV headers include data names, if available
  • Exporter correctly handles items with no data
  • pg.plot() avoids creating empty data item
  • removed call to reduce() from exporter; not available in python 3
  • Gave .name() methods to PlotDataItem, PlotCurveItem, and ScatterPlotItem
  • fixed ImageItem handling of rgb images
  • fixed makeARGB re-ordering of color channels
  • fixed unicode usage in AxisItem tick strings
  • fixed PlotCurveItem generating exceptions when data has length=0
  • fixed ImageView.setImage only working once
  • PolyLineROI.setPen() now changes the pen of its segments as well
  • Prevent divide-by-zero in AxisItem
  • Major speedup when using ScatterPlotItem in pxMode
  • PlotCurveItem ignores clip-to-view when auto range is enabled
  • FillBetweenItem now forces PlotCurveItem to generate path
  • Fixed import errors and py3 issues in MultiPlotWidget
  • Isosurface works for arrays with shapes > 255
  • Fixed ImageItem exception building histogram when image has only one value
  • Fixed MeshData exception caused when vertexes have no matching faces
  • Fixed GLViewWidget exception handler
  • Fixed unicode support in Dock
  • Fixed PySide crash caused by emitting signal from GraphicsObject.itemChange
  • Fixed possible infinite loop from FiniteCache
  • Allow images with NaN in ImageView
  • MeshData can generate edges from face-indexed vertexes
  • Fixed multiprocess deadlocks on windows
  • Fixed GLGridItem.setSize
  • Fixed parametertree.Parameter.sigValueChanging
  • Fixed AxisItem.__init__(showValues=False)
  • Fixed TableWidget append / sort issues
  • Fixed AxisItem not resizing text area when setTicks() is used
  • Removed a few cyclic references
  • Fixed Parameter 'readonly' option for bool, color, and text parameter types
  • Fixed alpha on GLScatterPlotItem spots (formerly maxed out at alpha=200)
  • Fixed a few bugs causing exit crashes

New in PyQtGraph 0.9.8 (Nov 25, 2013)

  • API / behavior changes:
  • ViewBox will auto-range when ImageItem changes shape
  • AxisItem:
  • Smarter about deciding which ticks get text
  • AxisItem.setScale(float) has the usual behavior, but .setScale(None)
  • is deprecated. Instead use:
  • AxisItem.enableAutoSIPrefix(bool) to enable/disable SI prefix scaling
  • Removed inf/nan checking from PlotDataItem and PlotCurveItem; improved performance
  • New Features:
  • Support for dynamic downsampling and view clipping in PlotDataItem and PlotItem
  • Added 'connect' option to PlotDataItem and PlotCurveItem to affect which line segments are drawn
  • Support for FFT with non-uniform time sampling
  • Added BarGraphItem
  • OpenGL:
  • Added export methods to GLViewWidget
  • Wireframe meshes
  • GLLinePLotItem gets antialiasing, accepts array of colors
  • GLMeshItem accepts ShaderProgram or name of predefined program
  • Added GLBarGraphItem
  • LegendItem:
  • User-draggable
  • Allow custom ItemSamples
  • Symbol support
  • Support for removing items
  • ScatterPlotWidget, ColorMapWidget, and DataFilterWidget are stable
  • TableWidget:
  • Made numerically sortable
  • Added setEditable method
  • AxisItem ability to truncate axis lines at the last tick
  • arrayToQPath() added 'finite' connection mode which omits non-finite values from connections
  • pg.plot() and pg.PlotWidget() now accept background argument
  • Allow QtProcess without local QApplication
  • Support for dashing in mkPen()
  • Added Dock.close()
  • Added style options to flowchart connection lines
  • Added parentChanged and viewChanged hooks to GraphicsItem
  • Bidirectional pseudoScatter for beeswarm plots
  • Added exit() function for working around PyQt exit crashes
  • Added PolylineROI.getArrayRegion()
  • Bugfixes:
  • Many Python 3 compatibility fixes
  • AxisItem:
  • Correctly handles scaling with values that are not power of 10
  • Did not update grid line length when plot stretches
  • Fixed unicode handling in AxisItem label
  • ViewBox:
  • Overhauled to fix issues with aspect locking
  • ViewBox context menu elements are no longer deleted when using flowchart with pyside
  • Fixed view linking with inverted y axis
  • Prevent auto-range disabling when dragging with one mouse axis diabled
  • Ignore inf and nan when auto-ranging
  • ParameterTree:
  • fixed TextParameter editor disappearing after focus lost
  • ListParameter: allow unhashable types as parameter values.
  • Exporting:
  • ImageExporter correctly handles QBrush with style=NoBrush
  • SVGExporter text, gradients working correctly
  • SVGExporter correctly handles coordinate corrections for groups with mixed elements
  • ImageView:
  • Fixed auto-levelling when normalization options change
  • Added autoHistogramRange argument to setImage
  • ScatterPlotItem:
  • Fixed crashes caused by ScatterPlotItem
  • Fixed antialiasing
  • arrayToQPath performance improved for python 3
  • Fixed makeQImage on many platforms (notably, on newer PyQt APIs)
  • Removed unnecessary scipy imports for faster import
  • GraphItem reports pixel margins to improve auto-range
  • Add backport ordereddict to repository; old OrderedDict class is removed
  • Corrected behavior of GraphicsView.setBackground
  • Fixed PySide bug listing image formats
  • Fixed QString -> str conversions in flowchart
  • Unicode file name support when exporting
  • Fixed MatplotlibWidget + PySide
  • Fixed 3D view updating after every scene change
  • Fixed handling of non-native dtypes when optimizing with weave
  • RemoteGraphicsView fixed for PyQt 4.10, Python 3
  • Fixed GLLinePlotItem line width option
  • HistogramLUTWidget obeys default background color
  • ScaleBar complete rewrite
  • GraphItem obeys antialiasing flag
  • Workaround for PySide/QByteArray memory leak
  • Fixed example --test on windows, python3
  • Luke finished dissertation

New in PyQtGraph 0.9.7 (Nov 25, 2013)

  • Bugfixes:
  • ArrowItem auto range now works correctly
  • Dock drag/drop fixed on PySide
  • Made padding behavior consistent across ViewBox methods
  • Fixed MeshData / python2.6 incompatibility
  • Fixed ScatterPlotItem.setSize and .setPointData
  • Workaround for PySide bug; GradientEditor fixed
  • Prefer initially selecting PlotItem rather then ViewBox when exporting
  • Fixed python3 import error with flowcharts
  • Cleaned up examples, made code editable from example loader
  • Minor documentation updates
  • Features:
  • Added GraphItem class for displaying networks/trees
  • Added ColorMap class for mapping linear gradients and generating lookup tables (Provides gradient editor functionality without the GUI)
  • Added ColorMapWidget for complex user-defined color mapping
  • Added ScatterPlotWidget for exploring relationships in multi-column tables
  • Added ErrorBarItem
  • SVG and image exporters can now copy to clipboard
  • PlotItem gets new methods: addLine, setLabels, and listDataItems
  • AxisItem gets setTickFont method
  • Added functions.arrayToQPath, shared between GraphItem and PlotCurveItem
  • Added gradient editors to parametertree
  • Expanded documentation, added beginning of Qt crash course

New in PyQtGraph 0.9.6 (Nov 25, 2013)

  • Features:
  • Added GraphItem class for displaying networks/trees
  • Added ColorMap class for mapping linear gradients and generating lookup tables (Provides gradient editor functionality without the GUI)
  • Added ColorMapWidget for complex user-defined color mapping
  • Added ScatterPlotWidget for exploring relationships in multi-column tables
  • Added ErrorBarItem
  • SVG and image exporters can now copy to clipboard
  • PlotItem gets new methods: addLine, setLabels, and listDataItems
  • AxisItem gets setTickFont method
  • Added functions.arrayToQPath, shared between GraphItem and PlotCurveItem
  • Added gradient editors to parametertree
  • Expanded documentation, added beginning of Qt crash course
  • Bugfixes:
  • Fixed auto-ranging bugs: ViewBox now properly handles pixel-padding around data items
  • ViewBox ignores bounds of zoom-rect when auto ranging
  • Fixed AxisItem artifacts
  • Fixed GraphicsItem.pixelVector caching bugs and simplified workaround for fp-precision errors
  • LinearRegionItem.hoverEvent obeys 'movable' flag
  • Fixed PlotDataItem nan masking bugs
  • Workaround for segmentation fault in QPainter.drawPixmapFragments
  • multiprocess and RemoteGraphicsView work correctly in Windows.
  • Expanded python 3 support
  • Silenced weave errors by default
  • Fixed " 'win' in sys.platform " occurrences matching 'darwin' (duh)
  • Workaround for change in QImage API (PyQt 4.9.6)
  • Fixed axis ordering bug in GLScatterPlotItem
  • Plotting performance improvements:
  • AxisItem shows fewer tick levels in some cases.
  • Lots of boundingRect and dataBounds caching
  • (improves ViewBox auto-range performance, especially with multiple plots)
  • GraphicsScene avoids testing for hover intersections with non-hoverable items (much less slowdown when moving mouse over plots)
  • Improved performance for remote plotting:
  • reduced cost of transferring arrays between processes (pickle is too slow) avoid unnecessary synchronous calls
  • Added RemoteSpeedTest example

New in PyQtGraph 0.9.5 (Nov 25, 2013)

  • Plotting performance improvements:
  • AxisItem shows fewer tick levels in some cases.
  • Lots of boundingRect and dataBounds caching (improves ViewBox auto-range performance, especially with multiple plots)
  • GraphicsScene avoids testing for hover intersections with non-hoverable items (much less slowdown when moving mouse over plots)
  • Improved performance for remote plotting:
  • reduced cost of transferring arrays between processes (pickle is too slow) avoid unnecessary synchronous calls
  • Added RemoteSpeedTest example
  • Documentation:
  • Added documentation on export system
  • Added flowchart documentation and custom node example
  • Bugfixes:
  • prevent PlotCurveItem drawing shadow when unnecessary
  • deprecated flowchart.Node.__getattr__ -- causes too many problems.

New in PyQtGraph 0.9.4 (Nov 25, 2013)

  • Documentation:
  • Added documentation on export system
  • Added flowchart documentation and custom node example
  • Bugfixes:
  • prevent PlotCurveItem drawing shadow when unnecessary
  • deprecated flowchart.Node.__getattr__ -- causes too many problems.
  • Bugfix: prevent adding invalid entry to sys.path when running examples

New in PyQtGraph 0.9.3 (Nov 25, 2013)

  • Bugfix: prevent adding invalid entry to sys.path when running examples
  • Bugfixes:
  • SVG export text elements use generic font-family as backup, corrected item
  • transformation issues
  • Fixed RuntimeError caused when clearing item hierarchies from ViewBox
  • Fixed example execution bug
  • Packaging maintenance:
  • Added missing files to MANIFEST.in, fixed setup.py package detection
  • Added debian control files for building source packages
  • Fixed version numbering in doc, __init__.py

New in PyQtGraph 0.9.2 (Nov 25, 2013)

  • Bugfixes:
  • SVG export text elements use generic font-family as backup, corrected item
  • transformation issues
  • Fixed RuntimeError caused when clearing item hierarchies from ViewBox
  • Fixed example execution bug
  • Packaging maintenance:
  • Added missing files to MANIFEST.in, fixed setup.py package detection
  • Added debian control files for building source packages
  • Fixed version numbering in doc, __init__.py

New in PyQtGraph 0.9.1 (Nov 25, 2013)

  • Removed incorrect version numbers
  • Correction to setup.py - use install_requires to inform pip of dependencies.
  • Fixed doc version (again)
  • Added debian control files
  • bugfixes for new package structure