===================
New features
------------
Core
^^^^
* :py:meth:`~.api.signals.Signal1D.spikes_removal_tool` displays derivative max value when used with
GUI.
* Progress-bar can now be suppressed by passing ``show_progressbar`` argument to all functions that generate
it.
IO
^^
* HDF5 file format now supports saving lists, tuples, binary strings and signals in metadata.
Plotting
^^^^^^^^
* New class, ``hyperspy.drawing.marker.MarkerBase``, to plot markers with ``hspy.utils.plot.markers`` module. See :ref:`plot.markers`.
* New method to plot images with the :py:func:`~.api.plot.plot_images` function in ``hspy.utils.plot.plot_images``. See :ref:`plot.images`.
* Improved ``hyperspy._signals.image.Signal2D.plot`` method to customize the image. See :ref:`plot.customize_images`.
EDS
^^^
* New method for quantifying EDS TEM spectra using Cliff-Lorimer method, ``hyperspy._signals.eds_tem.EDSTEMSpectrum.quantification``. See :external+exspy:ref:`eds_quantification-label`.
* New method to estimate for background subtraction, ``hyperspy._signals.eds.EDSSpectrum.estimate_background_windows``. See :external+exspy:ref:`eds_background_subtraction-label`.
* New method to estimate the windows of integration, ``hyperspy._signals.eds.EDSSpectrum.estimate_integration_windows``.
* New specific ``hyperspy._signals.eds.EDSSpectrum.plot`` method, with markers to indicate the X-ray lines, the window of integration or/and the windows for background subtraction. See :external+exspy:ref:`eds_plot_markers-label`.
* New examples of signal in the ``hspy.utils.example_signals`` module.
+ ``hyperspy.misc.example_signals_loading.load_1D_EDS_SEM_spectrum``
+ ``hyperspy.misc.example_signals_loading.load_1D_EDS_TEM_spectrum``
* New method to mask the vaccum, ``hyperspy._signals.eds_tem.EDSTEMSpectrum.vacuum_mask`` and a specific ``hyperspy._signals.eds_tem.EDSTEMSpectrum.decomposition`` method that incoroporate the vacuum mask
API changes
-----------
* :py:class:`~hyperspy.component.Component` and :py:class:`~hyperspy.component.Parameter` now inherit ``traits.api.HasTraits``
that enable ``traitsui`` to modify these objects.
* ``hyperspy.misc.utils.attrsetter`` is added, behaving as the default python ``setattr`` with nested
attributes.
* Several widget functions were made internal and/or renamed:
+ ``add_patch_to`` -> ``_add_patch_to``
+ ``set_patch`` -> ``_set_patch``
+ ``onmove`` -> ``_onmousemove``
+ ``update_patch_position`` -> ``_update_patch_position``
+ ``update_patch_size`` -> ``_update_patch_size``
+ ``add_axes`` -> ``set_mpl_ax``