Skip to content

Releases: PlotPyStack/PlotPy

v2.3.5

21 Jun 10:11
Compare
Choose a tag to compare

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 the tests 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):
    added plotpy-benchmarks script to run the benchmarks

v2.3.4

20 Jun 16:42
Compare
Choose a tag to compare

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 of numpy.array(..., copy=False)
    • Use numpy.isin instead of numpy.in1d
    • Use scipy.integrate.trapezoid instead of numpy.trapz
  • ColorMapManager: fix segmentation fault with PySide6 on Linux

v2.3.3

13 Jun 11:40
Compare
Choose a tag to compare

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 and io.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

ℹ️ Other changes:

  • Explicitely exclude NumPy V2 from the dependencies (not compatible yet)

v2.3.2

07 May 08:21
Compare
Choose a tag to compare

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 and HRangeTool)
      • DisplayCoordsTool: simulation of 'Alt' and 'Ctrl' keys
      • Complete coverage for MultiLineTool and FreeFormTool
      • Selection tools (RectangularSelectionTool and SelectTool)

🛠️ 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
    the SIG_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 new invert parameter (which
      defaults to None, 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)

🛠️ 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: removed add_change_path and adapt_path methods
  • Fix typo in tests.features.test_colormap_editor module: renamed function
    test_colormap_manager to test_colormap_editor
  • Removed unnecessary BaseImageItem.get_color_map_name method

v2.3.1

06 May 16:49
Compare
Choose a tag to compare

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 and HRangeTool)
      • DisplayCoordsTool: simulation of 'Alt' and 'Ctrl' keys
      • Complete coverage for MultiLineTool and FreeFormTool
      • Selection tools (RectangularSelectionTool and SelectTool)

🛠️ 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
    the SIG_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 new invert parameter (which
      defaults to None, 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)

🛠️ 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: removed add_change_path and adapt_path methods
  • Fix typo in tests.features.test_colormap_editor module: renamed function
    test_colormap_manager to test_colormap_editor
  • Removed unnecessary BaseImageItem.get_color_map_name method

v2.3.0

11 Mar 08:50
Compare
Choose a tag to compare

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 new invert parameter (which
      defaults to None, 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)

🛠️ 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: removed add_change_path and adapt_path methods
  • Fix typo in tests.features.test_colormap_editor module: renamed function
    test_colormap_manager to test_colormap_editor
  • Removed unnecessary BaseImageItem.get_color_map_name method

v2.2.0

04 Mar 16:25
Compare
Choose a tag to compare

Version 2.2.0

In this release, test coverage is 75%.

New features:

  • Added SIG_ITEM_PARAMETERS_CHANGED signal to BasePlot 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,
      the SIG_ITEM_PARAMETERS_CHANGED signal is emitted for the image item, but the
      SIG_ITEMS_CHANGED signal is not emitted.
  • 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
  • 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

16 Feb 10:27
Compare
Choose a tag to compare

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 the Global alpha parameter) for the other values
    • This feature is added to the other existing alpha functions: Constant, Linear,
      Sigmoid, and Hyperbolic tangent

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 to mathutils.colormaps
    • Original mathutils.colormap module naming is restored in this release
  • Colormap selection from the toolbar was not triggering the SIG_ITEMS_CHANGED signal
    (every time an item parameter is changed, the SIG_ITEMS_CHANGED signal has to be
    emitted by the BasePlot 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
  • 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
    • 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
  • 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

09 Feb 17:48
Compare
Choose a tag to compare

Version 2.1.1

Bug fixes:

  • API breakage (unintentional) in V2.1.0:
    • In V2.1.0, mathutils.colormap module was renamed to mathutils.colormaps
    • Original mathutils.colormap module naming is restored in this release
  • Colormap selection from the toolbar was not triggering the SIG_ITEMS_CHANGED signal
    (every time an item parameter is changed, the SIG_ITEMS_CHANGED signal has to be
    emitted by the BasePlot 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
  • 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
    • 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
  • 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

08 Feb 15:20
Compare
Choose a tag to compare

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
  • 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
    • 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
  • 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)