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.py
to thetests
folder (was in the root folder), so that
pytest
can 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-benchmarks
script 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.asarray
instead ofnumpy.array(..., copy=False)
- Use
numpy.isin
instead ofnumpy.in1d
- Use
scipy.integrate.trapezoid
instead 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
LineCrossSection
import for consistency with other cross-section panels - Unexpected behavior regarding
io.load_items
andio.save_items
functions:- 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
,XCursorTool
andHRangeTool
) DisplayCoordsTool
: simulation of 'Alt' and 'Ctrl' keys- Complete coverage for
MultiLineTool
andFreeFormTool
- Selection tools (
RectangularSelectionTool
andSelectTool
)
🛠️ 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_MOVED
signal 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 (
AttributeError
when
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_map
method takes a newinvert
parameter (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_path
method was removed from the
RawImageItem.deserialize
method: this issue has to be handled by the host
application, not by the PlotPy library. ImageIOHandler
: removedadd_change_path
andadapt_path
methods
- When an image plot item is deserialized, and needs to be reloaded from a file,
- Fix typo in
tests.features.test_colormap_editor
module: renamed function
test_colormap_manager
totest_colormap_editor
- Removed unnecessary
BaseImageItem.get_color_map_name
method
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
,XCursorTool
andHRangeTool
) DisplayCoordsTool
: simulation of 'Alt' and 'Ctrl' keys- Complete coverage for
MultiLineTool
andFreeFormTool
- Selection tools (
RectangularSelectionTool
andSelectTool
)
🛠️ 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_MOVED
signal 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 (
AttributeError
when
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_map
method takes a newinvert
parameter (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_path
method was removed from the
RawImageItem.deserialize
method: this issue has to be handled by the host
application, not by the PlotPy library. ImageIOHandler
: removedadd_change_path
andadapt_path
methods
- When an image plot item is deserialized, and needs to be reloaded from a file,
- Fix typo in
tests.features.test_colormap_editor
module: renamed function
test_colormap_manager
totest_colormap_editor
- Removed unnecessary
BaseImageItem.get_color_map_name
method
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_map
method takes a newinvert
parameter (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_path
method was removed from the
RawImageItem.deserialize
method: this issue has to be handled by the host
application, not by the PlotPy library. ImageIOHandler
: removedadd_change_path
andadapt_path
methods
- When an image plot item is deserialized, and needs to be reloaded from a file,
- Fix typo in
tests.features.test_colormap_editor
module: renamed function
test_colormap_manager
totest_colormap_editor
- Removed unnecessary
BaseImageItem.get_color_map_name
method
v2.2.0
Version 2.2.0
In this release, test coverage is 75%.
New features:
- Added
SIG_ITEM_PARAMETERS_CHANGED
signal toBasePlot
class:- 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_CHANGED
signal, which is global to all
items, but not necessarily. For example, when the colormap of an image is changed,
theSIG_ITEM_PARAMETERS_CHANGED
signal is emitted for the image item, but the
SIG_ITEMS_CHANGED
signal 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
,cividis
afmhot
coolwarm
,bwr
,seismic
gnuplot2
,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
,AnnotatedSegmentTool
AverageCrossSectionTool
,CrossSectionTool
,ObliqueCrossSectionTool
,
LineCrossSectionTool
EditPointTool
,SelectPointsTool
,SelectPointTool
AspectRatioTool
,ImageStatsTool
,SnapshotTool
DisplayCoordsTool
,RectZoomTool
CircleTool
,EllipseTool
,FreeFormTool
,MultiLineTool
,
ObliqueRectangleTool
,PointTool
,RectangleTool
,SegmentTool
- Internal package reorganization: moved icons to
plotpy/data/icons
folder
v2.1.2
Version 2.1.2
New features:
- Added
Echelon
alpha function to the image parameters:- The
Echelon
alpha 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 alpha
parameter) 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.colormap
module was renamed tomathutils.colormaps
- Original
mathutils.colormap
module naming is restored in this release
- In V2.1.0,
- Colormap selection from the toolbar was not triggering the
SIG_ITEMS_CHANGED
signal
(every time an item parameter is changed, theSIG_ITEMS_CHANGED
signal has to be
emitted by theBasePlot
instance 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.SelectPointsTool
to select graphically multiple points on a plot - New
tools.EditPointTool
to 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-qt
for 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.colormap
module was renamed tomathutils.colormaps
- Original
mathutils.colormap
module naming is restored in this release
- In V2.1.0,
- Colormap selection from the toolbar was not triggering the
SIG_ITEMS_CHANGED
signal
(every time an item parameter is changed, theSIG_ITEMS_CHANGED
signal has to be
emitted by theBasePlot
instance 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.SelectPointsTool
to select graphically multiple points on a plot - New
tools.EditPointTool
to 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-qt
for 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.SelectPointsTool
to select graphically multiple points on a plot - New
tools.EditPointTool
to 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-qt
for the test suite (due to Qt6 compatibility issues)