Plotpy

Latest version: v2.7.2

Safety actively analyzes 723144 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 5 of 10

3.0.0

Possible API compatibility issues:

* Added support for PyQt5 (removed old-style signals)
* Replaced `PyQwt` dependency by the new `python-qwt` package (pure Python reimplementation of the Qwt6 C++ library)
* Removed "curvetype" feature (Yfx, Xfy) which is no longer supported in Qwt6
* Removed curve "fitted" option which is not supported in `qwt`.

Bug fixes:

* scaler.cpp: fixed destination rectangle ValueError test (was continuing execution instead of returning immediately)
* Fixed Issue 4: mingw-w64's _isnan function crash
* Fixed Issue 38: error when quitting "transform.py" on Python 3
* Fixed Issue 19: added all qthelpers.create_action kwargs to plot.PlotManager method
* Fixed Issue 21: Baseplot captured mouseDoubleClickEvent for whole plot area instead of just the axis area
* Fixed Issue 22: added support for int64/uint64 images
* Fixed Issue 24: Item list widget was loosing names of curves
* Fixed Issue 33: update color map axis when active image item has changed
* Fixed Issue 32: show cross sections only for *visible* image items
* Fixed Issue 34: editing any axis (mouse double-click) made the color axis vanish
* Fixed Issue 34: editing color axis parameters should not allowed (not supported) --> the user may change those parameters through the image item properties dialog box
* Fixed Issue 31: added option to sync cross section scales to main plot
* Fixed Issue 30: make.xyimage now accepts lists or tuples for `x` and `y` arguments
* Fixed Issue 26: ImageItem.get_lut_range_max() throwed ValueError
* Fixed Issue 27: X-cross section was not working when image Y-axis was not reversed
* assemble_imageitems: assemble images taking into account the Z-order
* Cross sections: adding image intersections instead of picking one layer only
* Fixed Issue 42: update tools status after registering all curve/image tools
* Fixed Issue 16: ImagePlot/rectangular zoom was ignoring aspect ratio
* Fixed Issue 43: install_requires Pillow instead of PIL
* Fixed Issue 46 (`guiqwt.io.imread`): fixed support for PNG images with transparency palette (Pillow)
* Images with integers: avoid overflows when computing LUT
* Fixed Issue 50: 16-bit images were saved (io.imwrite) using the wrong PIL mode

2.7.3

🛠️ Bug fixes:

2.7.2

🛠️ Bug fixes:

* [Issue 32](https://github.com/PlotPyStack/PlotPy/issues/32) - Plot item list panel's parameters dialog box is empty for non-selectable items
* [Issue 30](https://github.com/PlotPyStack/PlotPy/issues/30) - `handle_final_shape_cb` argument doesn't work on `MultilineTool`, `PolygonTool`, `AnnotatedPolygonTool`

2.7.1

🛠️ Bug fixes:

* Fixed update `canvasRect` type to `QRectF` for intersection checks in `CircleSVGShape`, following [this bug fix](https://github.com/PlotPyStack/PythonQwt/commit/d0b5e26d8f78a9a65939503553f1bc1b56826e4e) in `PythonQwt` V0.14.4
* Fixed regression with respect to `guiqwt` regarding plot items instantiation:
* `guiqwt` was allowing to instantiate plot items without needing to create a `QApplication` instance (no GUI event loop was required)
* This was not the case with `plotpy`, so that it was not possible -for example- to serialize/deserialize plot items to JSON without creating a `QApplication` instance
* This has been fixed by removing the `QIcon` instantiation from the plot items constructors (call to `QwtPlotItem.setIcon` method). Note that -in the meantime- `QwtPlotItem.setIcon` and `QwtPlotItem.icon` methods have also been removed in PythonQwt V0.14.3. Code relying on this feature should thus be updated to use the new `get_icon_name` method instead, i.e. `get_icon(item.get_icon_name())` instead of `item.icon()`.
* [Issue 26](https://github.com/PlotPyStack/PlotPy/issues/26) - Item list panel should not allow to select a non-selectable item

2.7.0

Supported versions of Python have been updated (drop support for Python 3.8, add support for Python 3.13):

* PlotPy < 2.7.0: Python 3.8, 3.9, 3.10, 3.11 and 3.12
* PlotPy >= 2.7.0: Python 3.9, 3.10, 3.11, 3.12 and 3.13

Other dependencies have been updated:

* Updated versions to those available at the time of the release of the oldest supported Python version (3.9)
* Exception: Cython 3.0 is required for Python 3.13

💥 New features / Enhancements:

* Added `AnnotatedPolygon` annotation to items
* Added `make.annotated_polygon` function to `plotpy.builder` module
* Customization of annotation information:
* Added `info_callback` argument to all annotation class constructors
* Added `set_info_callback` method to all annotation classes
* The `info_callback` is a function that takes the annotation object and returns a string with the information to display
* Default `info_callback` is redirected to the `get_infos` method of the annotation object (this makes the feature backward compatible)

🛠️ Bug fixes:

* Fixed `pydicom` support: use `dcmread` instead of `read_file` to read DICOM files

2.6.3

🧯 In this release, test coverage is 79%.

🛠️ Bug fixes:

* [Issue 25](https://github.com/PlotPyStack/PlotPy/issues/25) - `OverflowError` with Contrast Adjustment panel for constant images
* When updating image parameters (`ImageParam`) from the associated item object:
* If `xmin`, `xmax`, `ymin`, `ymax` attributes are not yet set (i.e. `None`), do not update them with the image data bounds
* Previous behavior was to update them with the image data bounds, which was leading to breaking the automatic bounds update when the image data is updated
* [Issue 24](https://github.com/PlotPyStack/PlotPy/issues/24) - Colormap: side effect on image axes when changing the colormap
* [Issue 23](https://github.com/PlotPyStack/PlotPy/issues/23) - Windows: Image `_scaler` engine performance regression
* PySide6 compatibility issues:
* Fixed deprecated call to `QMouseEvent` in `tests/unit/utils.py`
* Added workaround for `QPolygonF` shape point slicing
* [Issue 21](https://github.com/PlotPyStack/PlotPy/issues/21) - PySide6 on Linux: segfault in test_colormap_editor.py
* Fixed `sliderMoved` signal connection in `ColorMapEditor`
* Fixed `AssertionError` in test_rect_zoom.py (Linux, Python 3.12, PyQt6)
* Fixed typing issues in `plotpy.events` module:
* Event objects were not properly typed (`QtCore.QEvent` instead of `QtGui.QMouseEvent`)
* Event position arguments were not properly typed (`QtCore.QPoint` instead of `QtCore.QPointF`)
* Fix NumPy `FutureWarning: Format strings passed to MaskedConstant are ignored [...]` when displaying masked pixel coordinates

Page 5 of 10

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.