Releases: pyqtgraph/pyqtgraph
Releases · pyqtgraph/pyqtgraph
pyqtgraph-0.13.3
pyqtgraph-0.13.3
What's Changed
Highlights
- PySide6 6.5 Compatability
Bug Fixes
- Return float values from QColor in getByIndex by @nickdimitroff in #2648
- GLViewWidget: don't assume mouse tracking is disabled by @pijyoi in #2653
- Tolerate an empty BarGraphItem by @jmakovicka in #2658
- Only apply nan mask workaround for cp version below 10.0. by @koenstrien in #2689
Misc
- unify ndarray_from_qpolygonf implementation by @pijyoi in #2654
- re-enable tests taking gui thread on PySide6 by @pijyoi in #2657
- inherit GraphicsWidgetAnchor on the left-hand-side by @pijyoi in #2662
- Prepare support for PySide6 drawLines and friends by @pijyoi in #2596
- Avoid changing background colors of text and rows for group parameter… by @ntjess in #2683
Testing
Docs
- Update pydata-sphinx-theme and fix warnings by @j9ac9k in #2643
- Bump sphinx-design from 0.3.0 to 0.4.1 in /doc by @dependabot in #2686
- Bump sphinx from 5.3.0 to 6.1.3 in /doc by @dependabot in #2585
New Contributors
- @nickdimitroff made their first contribution in #2648
- @koenstrien made their first contribution in #2689
Full Changelog: pyqtgraph-0.13.2...pyqtgraph-0.13.3
pyqtgraph-0.13.2
What's Changed
Highlights
- Fix InfiniteLine bounding rect calculation by @ixjlyons in #2407
- Allow plotting multiple data items at once by @ntjess in #2461
- Migrate to PyData Sphinx Theme - Restructure Docs by @j9ac9k in #2449
API/Behavior Changes
- re-enable hmac authentication for win32 by @pijyoi in #2465
- Add keyword argument in PColorMeshItem to enable consistent colormap scaling during animation by @SimenZhor in #2463
- fix: use connect='finite' if finite-ness of data is unknown by @pijyoi in #2471
- Fix
ViewBox.autoRange()
for case of data with constant y-value by @bbc131 in #2489 - Make
ActionGroup
compatible with existing Parameter conventions by @ntjess in #2505 - Update
PenParameter
by @ntjess in #2536 - remove resizeEvent on screen change by @pijyoi in #2546
- BarGraphItem: implement dataBounds and pixelPadding by @pijyoi in #2565
- Maintain argument propagation for GLGraphicsItems to super class by @koutoftimer in #2516
- Accept custom ROI objects for ImageView by @ktahar in #2581
- PColorMeshItem colorbar support by @SimenZhor in #2477
- feat(PlotItem) define context menu action visibility by @jmkerloch in #2584
- Allow plotting multiple data items at once by @ntjess in #2461
Bug Fixes
- Fix renderView to not use mremap on FreeBSD by @yurivict in #2445
- Fix action parameter button that is briefly made visible before getting a parent by @ntjess in #2451
- Fix InfiniteLine bounding rect calculation by @ixjlyons in #2407
- Fix disconnect of signal proxy by @dgoeries in #2453
- Fix ButtonItem hover event by @bbc131 in #2473
- test and fix for ChecklistParameter.show bug by @outofculture in #2480
- fix segmented line mode with no segments by @pijyoi in #2481
- Prevent flickering
ActionGroup
when switching parameter trees by @ntjess in #2484 - fix: ndarray_from_qimage does not hold a reference to qimage by @pijyoi in #2492
- Fix exportDialog drawn off screen by @aksy2512 in #2510
- partial fix for Qmenu leak by @pijyoi in #2518
- Fix last QMenu leak and its associated segfaults by @pijyoi in #2522
- fix setMaximumHeight(1e6) in SpinBox.py by @sem-geologist in #2519
- Use base_prefix to detect virtual env by @eendebakpt in #2566
- typo: dataRange -> dataBounds by @pijyoi in #2589
- NonUniformImage: implement floating point boundingRect by @pijyoi in #2587
- PColorMeshItem: implement dataBounds and pixelPadding by @pijyoi in #2586
- BarGraphItem: calculate boundingRect without drawing by @pijyoi in #2599
- Fix bounds handling when data is int16 or similar formats by @NilsNemitz in #2515
- ImageView: make .nframes() to use .axis['t'] instead of .shape[0] by @sem-geologist in #2623
- Fix GraphicsScene ValueError in mouseReleaseEvent by @j9ac9k in #2605
- PlotCurveItem error with stepMode="center", autoRange and autoVisible by @djdt in #2595
Examples
- Fix #2482 argparse inputs were ignored by @ntjess in #2483
- PlotSpeedTest: reflect initial use_opengl state by @pijyoi in #2487
- draw example histogram using BarGraphItem by @pijyoi in #2556
Tests
- ROI: Add test with mouseDrag event and check snapping by @dgoeries in #2476
- fix wrong logic for assert_alldead by @pijyoi in #2503
- fix: instantiate QApplication for test_Parameter.py by @pijyoi in #2539
- don't use pg.plot() in tests by @pijyoi in #2625
Docs
- Migrate to PyData Sphinx Theme - Restructure Docs by @j9ac9k in #2449
- Fix Qt crash course example by @Jaime02 in #2470
Other
- Remove remaining templates by @j9ac9k in #2448
- Have canvas deprecation warning by @j9ac9k in #2446
- unify win32 and unix mmap codepaths by @pijyoi in #2457
- Update setup.py, import distutils after setuptools by @LocutusOfBorg in #2459
- Raise appropriate Exceptions in place of generic exceptions by @Nibba2018 in #2474
- Remove old unused mains by @Jaime02 in #2490
- make DockDrop be a non-mixin by @pijyoi in #2450
- Use non-deprecated QMouseEvent signatures by @j9ac9k in #2509
- Remove STRTransform main by @Jaime02 in #2466
- Minor improvements to
InteractiveFunction
ecosystem by @ntjess in #2521 - Improve
ChecklistParameter.setValue
logic. by @ntjess in #2544 - Remove antiquated Qt crash prevention by @NeilGirdhar in #2573
- create internals.PrimitiveArray by @pijyoi in #2591
- rename "method" to "use_array" and make it keyword only by @pijyoi in #2609
New Contributors
- @yurivict made their first contribution in #2445
- @Jaime02 made their first contribution in #2468
- @SimenZhor made their first contribution in #2463
- @Nibba2018 made their first contribution in #2474
- @rookiepeng made their first contribution in #2491
- @aksy2512 made their first contribution in #2510
- @noonchen made their first contribution in #2553
- @ZeitgeberH made their first contribution in #2559
- @NeilGirdhar made their first contribution in #2573
- @koutoftimer made their first contribution in #2516
- @ktahar made their first contribution in #2581
- @bilaljo made their first contribution in #2577
- @djdt made their first contribution in #2595
- @jmkerloch made their first contribution in #2584
Full Changelog: pyqtgraph-0.13.1...pyqtgraph-0.13.2
pyqtgraph 0.13.1
pyqtgraph 0.13.0
What's Changed
Highlights
- With PyQt6 6.3.2+ PyQtGraph uses sip.array, which leads to significantly faster draw performance by @pijyoi in #2314
- Introducing "interactive" parameter trees by @ntjess in #2318
- Minimum Qt version now 5.15 for Qt5 and 6.2+ for Qt6 by @j9ac9k in #2403
- with
enableExperimental
pyqtgraph accesses QPainterPathPrivate for faster QPainterPath generation by @pijyoi in #2324
New Features
- Interactive params fixup by @ntjess in #2318
- Added possibility to use custom dock labels by @ardiloot in #2274
- Introduce API option to control whether lines are drawn as segmented lines by @swvanbuuren in #2185
- access QPainterPathPrivate for faster arrayToQPath by @pijyoi in #2324
- Update LabelItem to allow transparency in the text by @ElpadoCan in #2300
- Make parameter tree read-only values selectable and copiable by @ardiloot in #2311
- Have CSV exporter export error bar information by @j9ac9k in #2405
- map pyqtgraph symbols to a matplotlib equivalent by @pijyoi in #2395
Performance Improvements
- Improve performance of PlotCurveItem with QOpenGLWidget by @bbc131 in #2264
- ScatterPlotItem: use Format_ARGB32_Premultiplied by @pijyoi in #2317
- access QPainterPathPrivate for faster arrayToQPath by @pijyoi in #2324
- make use of PyQt sip.array by @pijyoi in #2314
Bug Fixes
- Fix GLImageItem regression by @pijyoi in #2232
- Fixed the app crash on right clicked by @Cosmicoppai in #2236
- Fix Regression in in ViewBox.updateScaleBox Caused by #2034 by @campagnola in #2241
- Fix UFuncTypeError when plotting integer data on windows by @campagnola in #2249
- Fixed division by zero when no pixmap is loaded by @StSav012 in #2275
- Ensure in PlotCurveItem lookup occurs in tuple, not str by @j9ac9k in #2294
- Fixed a crash when
step
option is missing by @StSav012 in #2261 - Invalidate cached properties on geometryChanged signal by @j9ac9k in #2357
- Bugfix: Handle example search failure due to bad regex by @ntjess in #2121
- Address #2303 unapplied pen parameter constructor options by @ntjess in #2305
- Issue #2203 Potential Fix: Disabled FlowchartCtrlWidget.nodeRenamed o… by @HallowedDust5 in #2301
- Fix #2289 unwanted growing in scene context menu by @ntjess in #2306
- #2283 delete limitation by rectangle width ROI by @sasha-sem in #2285
- Update exception handling to catch exceptions in threads (py3 change) by @campagnola in #2309
- Fix PlotCurveItem errors when pen=None by @campagnola in #2315
- ScatterPlotItem point masking fix by @ardiloot in #2310
- Use property to lazily declare rectangle by @j9ac9k in #2356
- Fix missing import in Flowchart.py by @Puff-Machine in #2421
- Fix doubling labels in DateAxisItem by @bbc131 in #2413
- GridItem: Fix pen for usage of dash-pattern by @bbc131 in #2304
- Update PColorMeshItem.py by @LarsVoxen in #2327
- Fix infinite loop within DateAxisItem by @bbc131 in #2365
- Fix GraphicsScene.itemsNearEvent and setClickRadius by @bbc131 in #2383
- Modify MatplotlibWidget to accept QWidget super constructor parameters. by @Dolphindalt in #2366
- Fix flickering, when panning/scrolling in a fully zoomed-out view by @bbc131 in #2387
- Make auto downsample factor calculation more robust by @StSav012 in #2253
- Fix : QPoint() no longer accepts float arguments by @campagnola in #2260
- avoid double init of DockDrop by @pijyoi in #2286
- Add a few ImageView improvements by @outofculture in #1828
API/Behavior Changes
- remove border QGraphicsRectItem from scene by @pijyoi in #2225
- Introduce API option to control whether lines are drawn as segmented lines by @swvanbuuren in #2185
- Modify CSV exporter to output original data without log mapping by @NilsNemitz in #2297
- Expose useCache ScatterPlotItem option from plot method by @ibrewster in #2258
- remove legend items manually from scene by @pijyoi in #2368
getHistogramRange
forHistogramLUTItem
by @kremeyer in #2397- Axis pen improvements by @ibrewster in #2398
- remove MatplotlibWidget from pg namespace by @pijyoi in #2400
- change the libOrder to favor Qt6 by @Wubbzi in #2157
Examples
- Added Jupyter console widget and Example by @jonmatthis in #2353
- Add glow example by @edumur in #2242
- update multiplePlotSpeedTest.py to use PlotCurveItem instead of QGraphicsPathItem by @pijyoi in #2426
Docs
- Add GLTextItem to docs by @jebguth in #2419
- Add logo to docs by @ixjlyons in #2384
- Enable nit-picky mode in documentation and fix associated warnings by @j9ac9k in #1753
- Added UML class diagram to give overview of the most important classes by @titusjan in #1631
Other
- Remove old Qt workarounds by @pijyoi in #2224
- Track when ScatterPlotItem clears the tooltip, only clear when needed by @ixjlyons in #2235
- Avoid import error in HDF5 exporter by @campagnola in #2259
- test enum using : "enums & enum" by @pijyoi in #2250
- add support for PySide6 6.3.0 QOverrideCursorGuard by @pijyoi in #2263
- Used the power of
blockIfUnchanged
decorator by @StSav012 in #2181 - Handle/remove unused variables by @ksunden in #2094
- BusyCursor and QPainter fixes for PyPy by @pijyoi in #2349
- Add a pyi stub file to import best-guess pyqt type hints by @outofculture in #2358
- test_PlotCurveItem: unset skipFiniteCheck for next test by @pijyoi in #2313
- lazy create the rectangle selection item by @danielhrisca in #2168
- fix: super().init does not need self by @pijyoi in #2359
- Promote interactive
Run
action to group level by @ntjess in #2414 - Enhance testing for creating parameters from saved states by @ntjess in #2319
- add support for PySide6's usage of Python Enums by @pijyoi in #2329
- remove QFileDialog PyQt4 compatibility code by @pijyoi in #2394
- Bugfix:
interact
on decorated method that usesself
. by @ntjess in #2408 - use single generic template for all bindings by @pijyoi in #2226
interact()
defaults toON_ACTION
behavior and acceptsrunActionTemplate
argument by @ntjess in #2432
New Contributors
- @andriyor made their first contribution in #2212
- @keziah55 made their first contribution in #2191
- @Cosmicoppai made their first contribution in #2236
- @bbc131 made their first contribution in #2264
- @StSav012 made their first contribution in https://github.com/pyqtgraph/pyqtgraph/pull...
pyqtgraph 0.12.4
Highlights
- Jupyter Support with optional
jupyter-rfb
library - Experimental high performance with lines >1px thick
- Python 3.10 Support
- PColorMesh Performance Improvement
- PlotCurveItem fillLevel performance improvement
What's Changed
- experimental line drawing mode for thick lines by @pijyoi in #2011
- Add pymeasure in used by section by @msmttchr in #2033
- Optimize PColorMeshItem by @pijyoi in #2023
- Fix displace between selection area and mouse pos by @leo603222 in #2034
- Speed up connect='all' in the presence of non-finite by @pijyoi in #2036
- Fix deprecation warnings by @campagnola in #2038
- Update README.md by @3fon3fonov in #2043
- Fix WidgetGroup handling of QSplitter + code cleanup by @campagnola in #2047
- Moved examples inside project directory by @j9ac9k in #2045
- RemoteGraphicsView.py : implement pickle protocol by @pijyoi in #2051
- AxisItem: Ignore drag/wheel events on ViewBox. by @ales-erjavec in #2057
- Maintain limits on ViewBox scaling by @NilsNemitz in #2054
- make PlotItem's average pen and shadow pen accessible by @NilsNemitz in #2052
- Disable and comment the prepareForPaint call in ViewBox.update() by @NilsNemitz in #2053
- add HussariX to the list of Used By in README by @sem-geologist in #2069
- ViewBox quantization limit by @NilsNemitz in #2064
- re-add UTF-8 encoding to example app code loader by @NilsNemitz in #2061
- implement glInfo without PyOpenGL by @pijyoi in #2073
- Run isort and pycln over entire repo - upgrade pre-commit config by @j9ac9k in #2002
- Deprecate QtWidgets accessed through QtGui by @outofculture in #1915
- Improved error message for invalid PYQTGRAPH_QT_LIB by @max-radin in #2077
- speed up PlotCurveItem fillLevel by @pijyoi in #2032
- add check for roi scene by @hyperiongeo in #2083
- update imports in the broken example demos by @Wubbzi in #2087
- Don't raise exception when close method of an already-closed dock is called by @max-radin in #2089
- reverse coordinates when drawing on row-major images by @outofculture in #2085
- Separate x and y flags for AxisItem.setLogMode by @max-radin in #2081
- Jupyter PlotWidget example by @pijyoi in #2055
- Add some helpful exceptions for invalid inputs to methods by @ksunden in #2092
- Except clause must be exception type, not exception instance by @ksunden in #2093
- avoid redundant assignment of pos=pos by @ksunden in #2095
- Be lazier about importing h5py by @ksunden in #2096
- Remove polluting imports using * by @ksunden in #2098
- Avoid reusing variables in nested loops by @ksunden in #2100
- Convert == None checks to is None by @ksunden in #2099
- change binder to requirements.txt by @pijyoi in #2104
- set PLATFORM=offscreen in binder/start by @pijyoi in #2106
- Add a proxy delay to checklist parameter changes via children edits by @ntjess in #2097
- Fix stuck ColorBarItem by @NilsNemitz in #2103
- more convenience methods for color maps and bars by @NilsNemitz in #2090
- allow unsetting options in PlotDataItem and PlotCurveItem by @NilsNemitz in #2041
- use smaller font size for ROIExamples.ipynb by @pijyoi in #2112
- PlotCurveItem OpenGL : avoid automatic conversion from float64 to float32 by @pijyoi in #2111
- win32 np.clip slowness fixed in numpy by @pijyoi in #2125
- Fix deprecation warnings by @pijyoi in #2124
- RangeColorMapItem derives from ptree.types.ColorMapParameter by @pijyoi in #2130
- Fix PySide6 6.2.2 breaking change by @j9ac9k in #2132
- avoid PyOpenGL automatic array conversion by @pijyoi in #2131
- avoid comparing string with ndarray by @pijyoi in #2148
- Fire correct signal type for checklist value changing by @ntjess in #2147
- Use GroupParameter instead of popup button for PenParameter by @ntjess in #2086
- change GroupParameterItem palette to address issue in darkmode on mac by @Wubbzi in #2101
- Fix automatic int-casting code for Python 3.10 compatibility by @JamesWrigley in #2149
- Fix more int-casting code for Python 3.10 compatibility by @JamesWrigley in #2153
- Fix typos and formatting errors by @JamesWrigley in #2154
- Added projects to Used by list by @jakimowb in #2172
- Fix formatting on minimum value of GradientLegend. by @CanisUrsa in #2170
- Add an option to makeARGB to disable masking NaNs by @JamesWrigley in #2192
- avoid unnecessary call if autorange is disabled by @danielhrisca in #2199
- micro-optimization for plotcurveitem paint by @danielhrisca in #2201
- cache the ViewBox view pixel size by @danielhrisca in #2202
- improve GraphicsWidget paint speed by caching the bounding rect and the path used by the shape method by @danielhrisca in #2198
- numpy deprecated binary use of fromstring by @outofculture in #2194
- Add Python 3.10 to CI - Re-Enable pytest-xdist in CI by @j9ac9k in #2150
- Bump to 0.12.4 by @j9ac9k in #2209
New Contributors
- @msmttchr made their first contribution in #2033
- @leo603222 made their first contribution in #2034
- @3fon3fonov made their first contribution in #2043
- @max-radin made their first contribution in #2077
- @hyperiongeo made their first contribution in #2083
- @Wubbzi made their first contribution in #2087
- @JamesWrigley made their first contribution in #2149
- @jakimowb made their first contribution in #2172
- @CanisUrsa made their first contribution in #2170
Full Changelog: pyqtgraph-0.12.3...pyqtgraph-0.12.4
pyqtgraph 0.12.3
Merge pull request #2012 from j9ac9k/prep-0.12.3-release Prep for 0.12.3 Release
pyqtgraph 0.12.2
Merge pull request #1884 from pyqtgraph/ksunden-patch-1 Update version number
pyqtgraph 0.12.1
Merge pull request #1696 from j9ac9k/0.12.1-changelog Add changelog for 0.12.1
pyqtgraph 0.12.0
Merge pull request #1655 from ksunden/prep0.12 Update version to 0.12.0
pyqtgraph 0.11.1
Merge pull request #1472 from ksunden/changelog Update Changelog for release 0.11.1