Plotpy

Latest version: v2.3.3

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

Scan your dependencies

Page 7 of 8

2.1.1

Bug fixes:

* Distributed source package: unwanted Sift build/dist files were eventually included in the package
* setup.py: fixed sphinx ImportError issue when building autodoc from source package (not finding the just built extension module)
* ErrorBarCurveItem/bugfix: did not support empty data
* Cross section panel: do not compute cross section each time a plot item is added/deleted
* annotations/Annotated cursor: couple of bugfixes + label color is changed when selecting/unselecting annotation
* annotations/tools: code cleaning + minor bugfixes (styles were not applied as expected)
* scaler.cpp/bugfix for float source images: values were converted to integers
* Sift/arbitrary rotation: added option "reshape" (default: True)
* Fix building the f90 extension on some systems
* Curve plots: fixed autoscale behavior for logarithmic scales
* fit/bugfix: when the fit params number was not a multiple of the layout column count, the last parameters were not shown

Other changes:

* shapes: added ObliqueRectangleShape
* tools: added ObliqueRectangleTool and AnnotatedObliqueRectangleTool
* Added averaged oblique cross section (panel and tools)
* plot items/Refactoring: methods 'set_selectable', 'set_resizable', 'set_movable' and 'set_rotatable' are now mandatory for all plot items (not only the image items as before)
* tools.ImageMaskTool/icon: more contrasted icon (in order to discriminate easily the disabled icon from the enabled one)
* plot.PlotManager: added method 'get_tool' (returns tool's instance from its class, if added to manager...)
* tools / New ExportItemData tool: supports only curve items (for now)
* tools.CrossSectionTool/AverageCrossSectionTool -- shape setup: added class attribute SHAPE_TITLE + do not hide computations anymore
* pyplot/Axes: added methods 'set_xlim' and 'set_ylim'
* shapes.py/image.py: code refactoring/cleaning --> geometry.py
* Rectangular shapes/annotations: added method get_bounding_rect_coords
* cross_section.CrossSectionPlot: added attribute 'single_source' / if True, only one image source is processed
* Improve pcolor, refactor scaler sources
* Handle Nan's quietly while computing lut min/max
* Added basic function computation on hist2d
* Allowed Histogram2DItems to have VOI, palettes and transparent backgrounds

2.1.0

Bug fixes:

* cross_section: CrossSectionWidget.update_plot argument 'obj' was not optional as in CrossSectionPlot.update_plot
* Contrast adjustment panel: when setting range (i.e. possible change of image data), levels histogram was not updated
* Tests: handling I/O errors occuring when user has no write permission on current directory
* Image items: bugfixes in ImageItem (scale issues: replaced x0,y0,dx,dy by xmin,xmax,ymin,ymax) + added intermediate class RawImageItem (ImageItem without scale)
* Image module: fixed pixel alignment issues (get_closest_indexes, ...)
* TrImageParam: fixed wrong class inheritance
* LegendBoxItem/bugfix: missing argument for include_item
* guiqwt.image.get_filename: bugfix when filename is None
* ErrorBarCurveItem.set_data: now accepts None for both dx and dy (interface consistency with its parent class, CurveItem)
* Image items/Align rectangular shape to image pixels/bugfix: this feature was not working for scaled images (ImageItem, MaskImageItem, ...)
* guiqwt.curve/image: improved autoscale method (now works with curves plotted on two different Y-axes)
* guiqwt.image: fixed issues related to empty filename/data when pickling/unpickling items
* OpenFileTool: now remembers the previously browsed directory
* Fixed PyQt >=v4.8 compatibility issue: PyQt is less permissive with signal string syntax (PyQt_PyObject is mandatory for passing a Python/C++ object)
* guiqwt.fit: fixed rounding error due to slider's non-continuous behaviour
* guiqwt.label/bugfix: text label was reset to '' when redrawn
* guiqwt.fit: bugfixes when using logscale
* guiqwt.io.array_to_imagefile/text files: format is now '%d' for integer data types
* (Fixes Issue 7) guifit: standard fit boundary excludes rightmost value
* guiqwt/curve.py: added workaround to avoid division by zero when clicking between curves
* guiqwt/io.py-array_to_dicomfile: fixed ambiguous VR for PixelData when changing DICOM data (forced to 'OB')
* Bugfix: recent versions of PyQt don't like the QApplication reference to be stored in modules (why is that?)
* Annotation/get_infos: fixed unicode error occuring with py2exe distribution only

Possible API compatibility issues:

* Panel interface: added mandatory method 'configure_panel' which is called just before adding the very first tool to the manager
* baseplot: renamed guiqwt.baseplot.EnhancedQwtPlot to BasePlot

Other changes:

* Cross sections/apply lut option turned on: now clipping data between 0 and LUT_MAX (0-1023), as it is done for displayed data
* Added RGBImageItem
* Scaler extension: added support for boolean arrays (e.g. for showing masks)
* Added DeleteItemTool (add an entry "Remove" in plot item context menu)
* Plot items/introduced notion of "private items": new item methods: (is_private, set_private), new plot methods: (get_private_items, get_public_items)
* BaseImageItem.get_closest_indexes (+code refactoring): added argument 'corner' -> see new method 'get_closest_index_rect'
* Shapes/Annotations: code cleaning/refactoring + implemented 'get_rect' method for EllipseShape
* Tools deriving from InteractiveTool: added arguments 'title', 'icon' and 'tip' to customize the tool's action
* MaskedImageItem: added ImageMaskTool to edit image's mask interactively
* ShapeParam: added attributes "private" and "readonly"
* interfaces.IBasePlotItem: added argument 'ctrl=None' to 'move_local_point_to' (ctrl is True when 'Ctrl' button is pressed)
* Ellipse/Circle shapes: when pressing 'Ctrl' button while resizing the shape, its center position will remain unchanged
* guiqwt.plot: added classes CurveWindow/ImageWindow (derived from QMainWindow)
* Added transitional package guiqwt.transitional (regroup all Qwt5 import statements)
* BasePlot: added class attributes AXIS_IDS, AXIS_NAMES (removed AXES)
* BasePlot: added methods 'set_axis_limits' and 'get_axis_limits'
* BasePlot: added method 'set_axis_ticks' to set axis major tick step size or maximum number of major ticks and maximum of minor ticks
* Cross section panels: added interface to handle the cross section curve data when updated
* Panel widgets are now dockable
* guiqwt.fit: code cleaning/refactoring + added FitWidget (similar to FitDialog but inherits directly from QWidget)
* guiqwt.fit: fit params may now be changed as often as needed (the param widgets are reconstructed then)
* guiqwt.fit: replaced set_fit_func and set_fit_params by set_fit_data (non sense to be setting one without the other)
* Added vertical/horizontal cursor plot items (+ tools + cursor info label): see builder.make.vcursor, hcursor and info_cursor
* Cross section panel: added button "auto refresh" (enabled by default) (e.g. may be disabled for large images)
* Added signal SIG_MASK_CHANGED, emitted by plot when an image mask has changed
* guiqwt.fit.FitWidget/FitDialog: now working with no fit param
* guiqwt.signals.SIG_ITEM_REMOVED is now emitted by plot when an item is removed from the item list panel (as before) or using the delete item tool (new)
* Cross section plot: added tool 'DeleteItemTool'
* guiqwt.builder/scaled image items (ImageItem, RGBImageItem, ...): added option 'pixel_size' (alternative to xdata and ydata)
* guiqwt.fit: added option 'param_cols' to regroup N fit parameters on each row
* SnapshotTool: added options to add images together (instead of the default replace behavior) + bugfixes
* Renamed signal_app.py to sift.py (Sifia -> Sift)
* Sift: added support for image processing
* Image levels histogram (contrast panel): replaced the 'remove first bin' feature by an intelligent Y-axis scaling
* guifit: reorganized layout to gain some space + added option 'size_offset' to change param label's size
* guiqwt.plot.CurveDialog: added attribute 'button_box' (reference to the QDialogButtonBox instance)
* guiqwt.io: added open/save filedialog filters 'IMAGE_LOAD_FILTERS' (types supported by 'imagefile_to_array') and 'IMAGE_SAVE_FILTERS' (types supported by 'array_to_imagefile')
* guiqwt.io: added support for "I;16B" images
* Sift/added image operations (+ various bugfixes/enhancements): resize and rotate (90°, -90°, H/V flipping, arbritrarily rotation)
* Sift: added run scripts + py2exe setup script + icon
* PanelWidget: added class attributes PANEL_TITLE and PANEL_ICON
* guiqwt.cross_section.CrossSectionItem: added method 'process_curve_data' (called when cross section data has changed instead of calling 'set_data' directly)
* Tools: added 'toolbar_id' argument to all tools deriving from CommandTool
* setup.py: removed the hard-coded -msse2 compile flag --> added extra options --sse2 and --sse3 as a replacement
* Added ImageStatsTool: show statistics on selected image item's rectangular area
* builder/images: added option 'interpolation' for all image item types (default=linear)
* builder/images: added option 'eliminate_outliers' for some image item types (default=None)
* Sift: added image cropping and flat-field correction features
* Sift: added average operation + threshold/clip features to image processing menu
* ImageMaskTool: now emits SIG_APPLIED_MASK_TOOL when mask is applied from defined shapes + other API details
* Sift: added support for DICOM metadata (shown as a dictionnary in a GUI-based editor)
* Sift: new embedded Python console with a proxy to manipulate signal/image data directly

2.0.3

Bug fixes:

* [Issue 9](https://github.com/PlotPyStack/PlotPy/issues/9) - MacOS: `error: a space is required between consecutive right angle brackets (use '> >')`

2.0.2

Bug fixes:

* [Issue 3](https://github.com/PlotPyStack/PlotPy/issues/3) - `PlotWidget`: `ZeroDivisionError` on resize while ignoring constraints
* [Issue 4](https://github.com/PlotPyStack/PlotPy/issues/4) - Average cross section: `RuntimeWarning: Mean of empty slice.`
* [Issue 5](https://github.com/PlotPyStack/PlotPy/issues/5) - Contrast panel: levels histogram is sometimes not updated
* [Issue 6](https://github.com/PlotPyStack/PlotPy/issues/6) - 1D Histogram items are not properly drawn
* [Issue 7](https://github.com/PlotPyStack/PlotPy/issues/7) - Contrast panel: histogram may contains zeros periodically due to improper bin sizes
* [Issue 8](https://github.com/PlotPyStack/PlotPy/issues/8) - Contrast panel: switch back to default tool after selecting min/max

2.0.1

Bug fixes:

* Fixed `plotpy.tools.AnnotatedEllipseTool`: `AttributeError` when finalizing the shape
* `plotpy.widgets.select_with_shape_tool`: added missing `toolbar` and `options` parameters
* `items.XRangeSelection` is now serializable, as expected

Documentation:

* `plotpy.plot.SyncPlotWindow`: added missing documentation
* Added more information on PlotPyStack
* New "Motivation" section explaining the reasons behind the creation of PlotPy

2.0

* Handled all Cython/C++ extensions compilation warnings
* Fixed all NumPy deprecation issues (e.g. `numpy.matrix`)
* Fixed (annotated) circle/ellipse item creation/test
* Fixed all documentation build warnings
* Fixed regressions introduced by PlotPy V1 on top of guiqwt:
* Global references for the Debian package management
* Major aspect ratio issues:
* When resizing the plot widget (images were downsized indefinitely)
* When auto-scaling the plot widget (images were not displayed entirely)
* `TrImageItem` rotation algorithm
* Oblique cross-section test
* About dialog, version informations
* Ported all [guiqwt](https://pypi.org/project/guiqwt/) bug fixes since the merge
(i.e. between 2016 and 2023):
* Added support for Visual Studio 2015 and earlier
* Speeding-up image alpha channel calculation
* Optimized colormap icon caching
* X-axis direction and auto-scale
* Added load test (with a very large number of plot widgets)
* Coordinates inversion in `EllipseShape`
* ValueError with levels histogram
* Various fixes regarding plot item creation, cross-section features,
PyQt5 support, DICOM support, TIFF support, etc.
* Etc.


guiqwt Releases

Page 7 of 8

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.