What’s New in Revision 0.11.1.dev
These are the changes in SpectroChemPy-0.11.1.dev. See Release notes for a full changelog, including other versions of SpectroChemPy.
New Features
Score plot labels now use
adjustTextfor intelligent placement (collision avoidance with markers and other labels). Falls back to a fixed offset ifadjustTextis not installed.PCA component labels now display as
PC1,PC2, … instead of#0,#1, … in legends and coordinate display. Other analysis methods retain the default#0,#1, … labels. (#1404)
Bug Fixes
Display legend in 2D lines/stack plots when
legend=Trueis passed as a plotting keyword argument. Previously thelegendkwarg was silently ignored by the 2D plot backend, so lines rendered with auto-populated labels from coordinate metadata never showed a legend. (#1404)
Breaking Changes
MCRALS.solverConcandMCRALS.solverSpecare deprecated in favour ofsolver_Candsolver_St. The old names remain functional but emitFutureWarning. (PR #XXXX)MCRALS.constraintsis now a validated traitlet, enabling both constructor and post-construction assignment while preserving the distinction betweenNone(legacy path) and[](explicitly unconstrained new-API fit). Assignment ofconstraintsafter fitting invalidates the fitted state. Theconstraintsparameter is not config-file serializable. (PR #XXXX)
Deprecations
MCRALS.solverConcis deprecated; usesolver_Cinstead.MCRALS.solverSpecis deprecated; usesolver_Stinstead.Legacy MCR-ALS constraint traitlet parameters (
nonnegConc,unimodConc,closureConc, etc.) are deprecated; use theconstraintsAPI instead.
Developer
DOC: Improved example gallery to showcase SpectroChemPy-native idioms (
Coord.linspace,Coord.arange,scp.abs) for coordinate creationand dataset operations, replacing redundant
np.linspace+Coordwrapping patterns,np.absusage, list-comprehension synthetic data generators (scp.fromfunction),np.random.normalon datasets (scp.normal),np.arangewrapped in NDDataset (scp.arange), andnp.random.rand+ NDDataset constructor (NDDataset.random). Also updated API docstring examples to usescp.gaussian,Coord.linspace,scp.arange, andNDDataset.randominstead of raw NumPy equivalents. (#1370)MAINT: Mutualized the duplicated figure/axes/show lifecycle across the five composite plot functions (
plot_score,plot_scree,plot_compare,plot_merit,plot_baseline) into shared_setup_axesand_maybe_showhelpers inmplutils.py. Added 38 structural contract tests verifying the lifecycle behavior. No public API change. (#1408)