Releases: PlotPyStack/PlotPy
v2.3.5
Version 2.3.5
This release is mainly intended to fix the Windows binary distribution, which was not
supporting NumPy 2.0.
🛠️ Bug fixes:
-
Moved back
conftest.pyto thetestsfolder (was in the root folder), so that
pytestcan be executed with proper configuration when running the test suite
from the installed package -
Removed benchmarks from automated test suite (not relevant for the end user):
addedplotpy-benchmarksscript to run the benchmarks
v2.3.4
Version 2.3.4
In this release, test coverage is 79%.
🛠️ Bug fixes:
-
Add support for NumPy 2.0:
- Updated build system to use NumPy 2.0 on Python > 3.8 and NumPy 1 on Python 3.8
- Use
numpy.asarrayinstead ofnumpy.array(..., copy=False) - Use
numpy.isininstead ofnumpy.in1d - Use
scipy.integrate.trapezoidinstead ofnumpy.trapz
-
ColorMapManager: fix segmentation fault with PySide6 on Linux
v2.3.3
Version 2.3.3
In this release, test coverage is 79%.
🛠️ Bug fixes:
- Moved up
LineCrossSectionimport for consistency with other cross-section panels - Unexpected behavior regarding
io.load_itemsandio.save_itemsfunctions:- Those functions were serializing and deserializing most of the parameters of the
plot items, but not their visibility state - This is now fixed: the visibility state of the plot items is now saved and restored
as expected
- Those functions were serializing and deserializing most of the parameters of the
ℹ️ Other changes:
- Explicitely exclude NumPy V2 from the dependencies (not compatible yet)
v2.3.2
Version 2.3.2
In this release, test coverage is 79%.
Version 2.3.2 fixes a blocking issue with the colormap editor unit test introduced
in version 2.3.1. The latter is a fugitive release that was not announced.
💥 New features / Enhancements:
- Colormap: added "Apply" button to the colormap manager
- Automated test suite:
- Test coverage has been improved from 75% to 79%
- The following features are now covered by unit tests:
- Panning with the mouse move events
- Zooming with the mouse wheel/move events
- Curve statistics tool
- Image rotation and translations via
SelectTool(simulating mouse events) - Masked areas in images and
ImageMaskTool LockTrImageTool- Cursor tools (
HCursorTool,VCursorTool,XCursorToolandHRangeTool) DisplayCoordsTool: simulation of 'Alt' and 'Ctrl' keys- Complete coverage for
MultiLineToolandFreeFormTool - Selection tools (
RectangularSelectionToolandSelectTool)
🛠️ Bug fixes:
- Image statistics tool: fixed "No available data" message when the tool rectangular
region top Y coordinate is above the image top Y coordinate - Label items (
LabelItem,LegendBoxItem,DataInfoLabel, ...) were not emitting
theSIG_ITEM_MOVEDsignal when moved interactively (with the mouse) if the item
anchor was attached to the canvas - Colormap: fixed context menu entry update (colormap icon was updated as expected, but
the colormap name was not) - Rotate/crop dialog: added missing toolbar on plot widget
- Flip/rotate dialog: added missing toolbar on plot widget
- Fixed issue with oblique averaged cross section computation (
AttributeErrorwhen
clicking on the empty cross section plot)
Version 2.3.0
In this release, test coverage is 75%.
💥 New features:
- Added support for colormap inversion:
- The user can now invert the colormap of an image item:
- From the image parameters dialog ("Invert colormap" checkbox)
- From the plot context menu (right-click on the image item)
BaseImageItem.set_color_mapmethod takes a newinvertparameter (which
defaults toNone, meaning that the behavior is unchanged)- New
ReverseColormapTool: registered by default in the plot widget, like the
ColormapTool(add the "Invert colormap" entry in the context menu of the image)
- The user can now invert the colormap of an image item:
🛠️ Bug fixes:
ErrorBarCurveItem: fixed NumPy deprecation warning
("Conversion of an array with ndim > 0 to a scalar is deprecated [...]")
ℹ️ Other changes:
- Image plot items deserialization:
- When an image plot item is deserialized, and needs to be reloaded from a file,
the file path is adapted to the current working directory if file is not found
(this is the legacy behavior). - An unnecessary call to
ImageIOHandler.adapt_pathmethod was removed from the
RawImageItem.deserializemethod: this issue has to be handled by the host
application, not by the PlotPy library. ImageIOHandler: removedadd_change_pathandadapt_pathmethods
- When an image plot item is deserialized, and needs to be reloaded from a file,
- Fix typo in
tests.features.test_colormap_editormodule: renamed function
test_colormap_managertotest_colormap_editor - Removed unnecessary
BaseImageItem.get_color_map_namemethod
v2.3.1
Version 2.3.1
In this release, test coverage is 79%.
💥 New features / Enhancements:
- Colormap: added "Apply" button to the colormap manager
- Automated test suite:
- Test coverage has been improved from 75% to 79%
- The following features are now covered by unit tests:
- Panning with the mouse move events
- Zooming with the mouse wheel/move events
- Curve statistics tool
- Image rotation and translations via
SelectTool(simulating mouse events) - Masked areas in images and
ImageMaskTool LockTrImageTool- Cursor tools (
HCursorTool,VCursorTool,XCursorToolandHRangeTool) DisplayCoordsTool: simulation of 'Alt' and 'Ctrl' keys- Complete coverage for
MultiLineToolandFreeFormTool - Selection tools (
RectangularSelectionToolandSelectTool)
🛠️ Bug fixes:
- Image statistics tool: fixed "No available data" message when the tool rectangular
region top Y coordinate is above the image top Y coordinate - Label items (
LabelItem,LegendBoxItem,DataInfoLabel, ...) were not emitting
theSIG_ITEM_MOVEDsignal when moved interactively (with the mouse) if the item
anchor was attached to the canvas - Colormap: fixed context menu entry update (colormap icon was updated as expected, but
the colormap name was not) - Rotate/crop dialog: added missing toolbar on plot widget
- Flip/rotate dialog: added missing toolbar on plot widget
- Fixed issue with oblique averaged cross section computation (
AttributeErrorwhen
clicking on the empty cross section plot)
Version 2.3.0
In this release, test coverage is 75%.
💥 New features:
- Added support for colormap inversion:
- The user can now invert the colormap of an image item:
- From the image parameters dialog ("Invert colormap" checkbox)
- From the plot context menu (right-click on the image item)
BaseImageItem.set_color_mapmethod takes a newinvertparameter (which
defaults toNone, meaning that the behavior is unchanged)- New
ReverseColormapTool: registered by default in the plot widget, like the
ColormapTool(add the "Invert colormap" entry in the context menu of the image)
- The user can now invert the colormap of an image item:
🛠️ Bug fixes:
ErrorBarCurveItem: fixed NumPy deprecation warning
("Conversion of an array with ndim > 0 to a scalar is deprecated [...]")
ℹ️ Other changes:
- Image plot items deserialization:
- When an image plot item is deserialized, and needs to be reloaded from a file,
the file path is adapted to the current working directory if file is not found
(this is the legacy behavior). - An unnecessary call to
ImageIOHandler.adapt_pathmethod was removed from the
RawImageItem.deserializemethod: this issue has to be handled by the host
application, not by the PlotPy library. ImageIOHandler: removedadd_change_pathandadapt_pathmethods
- When an image plot item is deserialized, and needs to be reloaded from a file,
- Fix typo in
tests.features.test_colormap_editormodule: renamed function
test_colormap_managertotest_colormap_editor - Removed unnecessary
BaseImageItem.get_color_map_namemethod
v2.3.0
In this release, test coverage is 75%.
💥 New features:
- Added support for colormap inversion:
- The user can now invert the colormap of an image item:
- From the image parameters dialog ("Invert colormap" checkbox)
- From the plot context menu (right-click on the image item)
BaseImageItem.set_color_mapmethod takes a newinvertparameter (which
defaults toNone, meaning that the behavior is unchanged)- New
ReverseColormapTool: registered by default in the plot widget, like the
ColormapTool(add the "Invert colormap" entry in the context menu of the image)
- The user can now invert the colormap of an image item:
🛠️ Bug fixes:
ErrorBarCurveItem: fixed NumPy deprecation warning
("Conversion of an array with ndim > 0 to a scalar is deprecated [...]")
ℹ️ Other changes:
- Image plot items deserialization:
- When an image plot item is deserialized, and needs to be reloaded from a file,
the file path is adapted to the current working directory if file is not found
(this is the legacy behavior). - An unnecessary call to
ImageIOHandler.adapt_pathmethod was removed from the
RawImageItem.deserializemethod: this issue has to be handled by the host
application, not by the PlotPy library. ImageIOHandler: removedadd_change_pathandadapt_pathmethods
- When an image plot item is deserialized, and needs to be reloaded from a file,
- Fix typo in
tests.features.test_colormap_editormodule: renamed function
test_colormap_managertotest_colormap_editor - Removed unnecessary
BaseImageItem.get_color_map_namemethod
v2.2.0
Version 2.2.0
In this release, test coverage is 75%.
New features:
- Added
SIG_ITEM_PARAMETERS_CHANGEDsignal toBasePlotclass:- This signal is emitted when the parameters of an item are changed using the
parameters dialog, or a specific tool (e.g. the colormap selection tool,
or the lock/unlock tool for image items) - This signal is emitted with the item as argument
- It is often emitted before the
SIG_ITEMS_CHANGEDsignal, which is global to all
items, but not necessarily. For example, when the colormap of an image is changed,
theSIG_ITEM_PARAMETERS_CHANGEDsignal is emitted for the image item, but the
SIG_ITEMS_CHANGEDsignal is not emitted.
- This signal is emitted when the parameters of an item are changed using the
- Added new colormap presets:
viridis,plasma,inferno,magma,cividisafmhotcoolwarm,bwr,seismicgnuplot2,CMRmap,rainbow,turbo
- Fixed all qualitative colormaps:
- All qualitative colormaps have been re-computed because they are not supposed to be
interpolated, which was the case and made them unusable - The qualitative colormaps are now usable and look like the ones from Matplotlib
- All qualitative colormaps have been re-computed because they are not supposed to be
- Colormap manager:
- Added a button to remove a custom colormap
- The preset colormaps and the currently selected colormap are read-only
- Added automatic unit tests for interactive tools:
AnnotatedCircleTool,AnnotatedEllipseTool,AnnotatedObliqueRectangleTool,
AnnotatedPointTool,AnnotatedRectangleTool,AnnotatedSegmentToolAverageCrossSectionTool,CrossSectionTool,ObliqueCrossSectionTool,
LineCrossSectionToolEditPointTool,SelectPointsTool,SelectPointToolAspectRatioTool,ImageStatsTool,SnapshotToolDisplayCoordsTool,RectZoomToolCircleTool,EllipseTool,FreeFormTool,MultiLineTool,
ObliqueRectangleTool,PointTool,RectangleTool,SegmentTool
- Internal package reorganization: moved icons to
plotpy/data/iconsfolder
v2.1.2
Version 2.1.2
New features:
- Added
Echelonalpha function to the image parameters:- The
Echelonalpha function is a step function, so that the alpha channel is
0 (full transparency) for the lowest value of the Lookup Table (LUT) and opaque
(transparency level set by theGlobal alphaparameter) for the other values - This feature is added to the other existing alpha functions:
Constant,Linear,
Sigmoid, andHyperbolic tangent
- The
Bug fixes:
- Compatibility with PythonQwt 0.12.
Version 2.1.1
Bug fixes:
- API breakage (unintentional) in V2.1.0:
- In V2.1.0,
mathutils.colormapmodule was renamed tomathutils.colormaps - Original
mathutils.colormapmodule naming is restored in this release
- In V2.1.0,
- Colormap selection from the toolbar was not triggering the
SIG_ITEMS_CHANGEDsignal
(every time an item parameter is changed, theSIG_ITEMS_CHANGEDsignal has to be
emitted by theBasePlotinstance to notify the application that the plot has been
modified)
Version 2.1.0
In this release, test coverage is 71%.
New features:
- Curve-related features:
- New
tools.SelectPointsToolto select graphically multiple points on a plot - New
tools.EditPointToolto edit graphically the position of a point on a plot - New downsampling feature:
- The user may enable it to reduce the number of points displayed on a curve
(e.g. when the curve is too dense) - The downsampling factor is adjustable
(default to 10, i.e. 1 point out of 10 is displayed) - The feature is disabled by default
- The user may enable it to reduce the number of points displayed on a curve
- New
- Image-related features:
- New "Colormap Manager":
- Before this release, the colormap selection was limited to presets (e.g. "gray",
"jet", etc.) - Now, the user can select a preset, edit it, or create a new one from scratch
thanks to the new "Colormap Manager" dialog
- Before this release, the colormap selection was limited to presets (e.g. "gray",
- New line cross section feature:
- Before this release, the cross section feature was limited to either horizontal
or vertical lines, or an average cross section withing a rectangle (aligned with
the axes, or oblique) - Now, the user can draw a line cross section with the new "Line Cross Section"
tool: the intensity profile associated to the drawn segment is displayed in a
dedicated plot
- Before this release, the cross section feature was limited to either horizontal
- New "Colormap Manager":
- Added support for gestures:
- Zooming in/out with the a two-finger pinch gesture
- Panning with a two-finger drag gesture
Documentation:
- Reorganized some sections
- Added sections on new features
Bug fixes:
- Fixed critical bug in oblique cross section feature (regression introduced in 2.0.0)
- Removed dependency to
pytest-qtfor the test suite (due to Qt6 compatibility issues)
v2.1.1
Version 2.1.1
Bug fixes:
- API breakage (unintentional) in V2.1.0:
- In V2.1.0,
mathutils.colormapmodule was renamed tomathutils.colormaps - Original
mathutils.colormapmodule naming is restored in this release
- In V2.1.0,
- Colormap selection from the toolbar was not triggering the
SIG_ITEMS_CHANGEDsignal
(every time an item parameter is changed, theSIG_ITEMS_CHANGEDsignal has to be
emitted by theBasePlotinstance to notify the application that the plot has been
modified)
Version 2.1.0
In this release, test coverage is 71%.
New features:
- Curve-related features:
- New
tools.SelectPointsToolto select graphically multiple points on a plot - New
tools.EditPointToolto edit graphically the position of a point on a plot - New downsampling feature:
- The user may enable it to reduce the number of points displayed on a curve
(e.g. when the curve is too dense) - The downsampling factor is adjustable
(default to 10, i.e. 1 point out of 10 is displayed) - The feature is disabled by default
- The user may enable it to reduce the number of points displayed on a curve
- New
- Image-related features:
- New "Colormap Manager":
- Before this release, the colormap selection was limited to presets (e.g. "gray",
"jet", etc.) - Now, the user can select a preset, edit it, or create a new one from scratch
thanks to the new "Colormap Manager" dialog
- Before this release, the colormap selection was limited to presets (e.g. "gray",
- New line cross section feature:
- Before this release, the cross section feature was limited to either horizontal
or vertical lines, or an average cross section withing a rectangle (aligned with
the axes, or oblique) - Now, the user can draw a line cross section with the new "Line Cross Section"
tool: the intensity profile associated to the drawn segment is displayed in a
dedicated plot
- Before this release, the cross section feature was limited to either horizontal
- New "Colormap Manager":
- Added support for gestures:
- Zooming in/out with the a two-finger pinch gesture
- Panning with a two-finger drag gesture
Documentation:
- Reorganized some sections
- Added sections on new features
Bug fixes:
- Fixed critical bug in oblique cross section feature (regression introduced in 2.0.0)
- Removed dependency to
pytest-qtfor the test suite (due to Qt6 compatibility issues)
v2.1.0
Version 2.1.0
In this release, test coverage is 71%.
New features:
- Curve-related features:
- New
tools.SelectPointsToolto select graphically multiple points on a plot - New
tools.EditPointToolto edit graphically the position of a point on a plot - New downsampling feature:
- The user may enable it to reduce the number of points displayed on a curve
(e.g. when the curve is too dense) - The downsampling factor is adjustable
(default to 10, i.e. 1 point out of 10 is displayed) - The feature is disabled by default
- The user may enable it to reduce the number of points displayed on a curve
- New
- Image-related features:
- New "Colormap Manager":
- Before this release, the colormap selection was limited to presets (e.g. "gray",
"jet", etc.) - Now, the user can select a preset, edit it, or create a new one from scratch
thanks to the new "Colormap Manager" dialog
- Before this release, the colormap selection was limited to presets (e.g. "gray",
- New line cross section feature:
- Before this release, the cross section feature was limited to either horizontal
or vertical lines, or an average cross section withing a rectangle (aligned with
the axes, or oblique) - Now, the user can draw a line cross section with the new "Line Cross Section"
tool: the intensity profile associated to the drawn segment is displayed in a
dedicated plot
- Before this release, the cross section feature was limited to either horizontal
- New "Colormap Manager":
- Added support for gestures:
- Zooming in/out with the a two-finger pinch gesture
- Panning with a two-finger drag gesture
Documentation:
- Reorganized some sections
- Added sections on new features
Bug fixes:
- Fixed critical bug in oblique cross section feature (regression introduced in 2.0.0)
- Removed dependency to
pytest-qtfor the test suite (due to Qt6 compatibility issues)