Version 2.7¶
PlotPy Version 2.7.5 (2025-07-15)¶
🛠️ Bug fixes:
Issue #44 - Incorrect calculation method for “∑(y)” in
CurveStatsTool: replacedspt.trapezoidwithnp.sum, which is more consistent with the summation operationFix
update_statusmethod in all cross-section tools (intensity profile tools):Use
get_itemsinstead ofget_selected_itemsto retrieve the image itemsThis allows the tools to work properly when no image item is selected, but there are image items in the plot
This closes Issue #47 - Intensity profile tools do not work when no image item is selected
Other changes:
Updated
guidatadependency to V3.10.0Using new
guidatatranslation utility based onbabelDevelopment environment:
Historically, the default Python interpreter for development was handled by the
PPSTACK_PYTHONEXEenvironment variable, for example to run VS Code tasks with the correct Python interpreter.This approach has been replaced by relying on the virtual environment management as provided by VS Code itself, which is more standard and compatible with various tools.
PlotPy Version 2.7.4 (2025-04-26)¶
In this release, test coverage is 80%.
🛠️ Bug fixes:
PlotPy Version 2.7.3 (2025-04-05)¶
In this release, test coverage is 80%.
🛠️ Bug fixes:
Issue #40 - Z-axis logarithmic scale (
ZAxisLogTooltool) is not compatible with anti-aliasing interpolationFix intersection check for destination rectangle in
XYImageFilterItemIssue #36 - Image items are not properly scaling along Y-axis with logarithmic scale:
Actually, image items do not support non-linear scales (this is an historical limitation)
This is not documented at all, so we’ve added an explicit warning: a red colored message is displayed at the center of the image frame when any non-linear scale is applied to either X or Y axis
When dealing with non-linear scales, PlotPy provides an alternative solution: the user may rely on
XYImageItem(e.g. by usingmake.xyimage) as this item supports arbitrary X and Y pixel coordinates
Issue #34 -
ValueErrorwhen trying to plot 2D histogram items withPyQt6
Other changes:
Replace deprecated icon files with new SVG icons for selection tools
PlotPy Version 2.7.2 (2025-02-14)¶
🛠️ Bug fixes:
PlotPy Version 2.7.1 (2025-01-15)¶
🛠️ Bug fixes:
Fixed update
canvasRecttype toQRectFfor intersection checks inCircleSVGShape, following this bug fix inPythonQwtV0.14.4Fixed regression with respect to
guiqwtregarding plot items instantiation:guiqwtwas allowing to instantiate plot items without needing to create aQApplicationinstance (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 aQApplicationinstanceThis has been fixed by removing the
QIconinstantiation from the plot items constructors (call toQwtPlotItem.setIconmethod). Note that -in the meantime-QwtPlotItem.setIconandQwtPlotItem.iconmethods have also been removed in PythonQwt V0.14.3. Code relying on this feature should thus be updated to use the newget_icon_namemethod instead, i.e.get_icon(item.get_icon_name())instead ofitem.icon().
Issue #26 - Item list panel should not allow to select a non-selectable item
PlotPy Version 2.7.0 (2024-11-07)¶
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
AnnotatedPolygonannotation to itemsAdded
make.annotated_polygonfunction toplotpy.buildermoduleCustomization of annotation information:
Added
info_callbackargument to all annotation class constructorsAdded
set_info_callbackmethod to all annotation classesThe
info_callbackis a function that takes the annotation object and returns a string with the information to displayDefault
info_callbackis redirected to theget_infomethod of the annotation object (this makes the feature backward compatible)
🛠️ Bug fixes:
Fixed
pydicomsupport: usedcmreadinstead ofread_fileto read DICOM files