- Reduces aliasing when zoomed out
- Improves performance and memory usage for large images
Merge branch 'image_downsampling' into develop
Conflicts:
pyqtgraph/graphicsItems/ImageItem.py
Renamed args for clarity, improved documentation
Fixed interaction bugs
- zooming works correctly when view is against limit
- no more phantom target range; target is reset during mouse interaction.
- 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
* Loads only data that is currently visible
* Downsamples to avoid plotting too many samples
* Loads data in chunks to limit memory usage during downsampling
- GraphicsView.render now correctly invokes GraphicsScene.prepareForPaint
- Fixed RemoteGraphicsView renderer to use new PyQt QImage API.
- multiprocess.Process now pipes stdout/err directly to console when in debugging mode
- ROI updates on sigTransformChanged
- ViewBox is more careful about accepting all auto-range changes up to the point it is disabled, even if the auto-range calculation is deferred.
AxisItem correctly handles scaling with values that are not power of 10
Can remove items from legend
updated plotItem setLogMode to allow unspecified axes
- fixed example testing script
- Added finer axis ticks back in some instances
- fixed improper bounds caching in log/fft mode
- fixed exception handling in remoteproxy
- Canvas: added per-item context menus
- Isocurve:
option to extend curves to array boundaries
option to generate QPainterPath instead of vertex array
- Isosurface is a bajillion times faster
- ViewBox
added clear() method
added locate(item) method (shows where an item is for debugging)
Bugfixes:
- automated example testing working properly
- Exporter gets incorrect source rect when operating on PlotWidget
- Set correct DPI and size for SVG exporter
- GLMeshItem works properly with whole-mesh color specified as sequence
- bugfix in functions.transformCoordinates for rotated matrices
- reload library checks for modules that are imported multiple times
- GraphicsObject, UIGraphicsItem: added workaround for PyQt / itemChange bug
- ScatterPlotItem: disable cached render during export
Other:
- added documentation for several functions
- minor updates to setup.py
[ Note: These APIs have changed significantly. ]
- MeshData and GLMeshItem now operate on numpy arrays instead of lists.
- MeshData can handle per-vertex and per-triangle color information
Added GLSurfacePlotItem class based on new GLMeshItem
GLGraphicsItem now has per-item support for customizing GL state (setGLOptions method)
Added several new shader programs
Added new examples:
GLIsosurface
GLSurfacePlot
GLshaders
- Can be anchored to parent item at any location
- Support for filled plot styles
- Automatically resizes to fit contents
- PlotItem can auto-generate legend
- generalized makeARGB API: can now process arrays of arbitrary shape.
- affineSlice automatically converts vector arguments to array
- new function applyLookupTable taken from makeARGB
- isosurface function returns array
Updated VideoSpeedTest example to follow new makeARGB API
LayoutWidget: row argument now accepts 'next' as value
ParameterTree bugfix: avoid infinite recursion when accessing non-existent attributes
ViewBox: avoid exit error caused when cleanup callback is invoked while python is shutting down
- ConsoleWidget now correctly catches its own exceptions
- Fixed ViewBox auto-scaling bug
- Fixed functions.siEval not parsing units correctly
- Fixed bug caused when opengl GL_VERSION_STR is None
- added ability for ScatterPlotItem to use arbitrary symbol shapes
- added scatter plot speed test for evaluating new methods
- added butterworth notch filter to flowchart library
- fixed bugs with ViewBox trying to close itself after python has started cleaning up
- fixed python 2.6 compatibility bug in PlotCurveItem
- fixed support for list-of-dicts and dict-of-lists input for PlotDataItem
- check to ensure Qt version is >= 4.7
- workaround for numpy segmentation fault
- several other minor updates and documentation changes
- fixed handling of foreground colors in AxisItem
- fixed rare crash caused in AxisItem
- fixed improper propagation of key events from SpinBox
- many others
- Added pyqtgraph.systemInfo() for bug reporting
- GraphicsLayout does a better job of avoiding occupied cells when using automatic placement
- Fixed sizing issues with LabelItem
- Updated GraphicsLayout example
- ForkedProcess is much more careful with inherited state -- closes file handles, removes atexit and excepthook callbacks
- Remote processes copy sys.path from parent
- Parallelizer has ProgressDialog support
- Many docstring updates
- Added some test code for remote GraphicsView rendering
- allows starting new processes and controlling them remotely from the parent process
- remote processes can run their own GUI, Qt signals can be connected between processes
(in general this is not possible with the built-in multiprocessing module due to
the use of fork() ).
- Control works by a system of proxy-objects such that controlling a remote process
looks almost exactly like working with local objects.
- Uses sockets to communicate between processes (so in theory could be made to
work over a network), but also includes a mode that uses fork() to allow fast
parallelization.
- Wicked-easy inline parallelization by adding only one line of code to break up work between
processes (requires fork; sorry windows users)
- GUI interactive python prompt, useful in a variety of situations where
python -i or ipython don't work very well.
- Command history (requires a little help finding storage for this)
- Exception catching, allowing the user to inspect local variables
at any level within a stack trace (currently, this is done _without_
blocking the application)