Skip to content

Releases: janosh/pymatviz

v0.17.2

14 Aug 10:09
Compare
Choose a tag to compare

What's Changed

🛠 Enhancements

  • py_pkg_treemap() add heatmap mode to color by module stats such as coverage by @janosh in #317

🐛 Bug Fixes

  • Upgrade uv_build>=0.8.10 to fix wheel permissions issue by @janosh in #320

🏷️ Type Hints

Full Changelog: v0.17.1...v0.17.2

v0.17.1

29 Jul 07:25
Compare
Choose a tag to compare

What's Changed

🛠 Enhancements

🐛 Bug Fixes

  • Fix FileNotFoundError pyproject.toml in 0.17.0 by @janosh in #313

Full Changelog: v0.17.0...v0.17.1

v0.17.0

22 Jul 12:38
Compare
Choose a tag to compare

What's Changed

💥 Breaking Changes

  • Add cell_size_fn: Callable[[ModuleStats], float] keyword to py_pkg_treemap by @janosh in #293
  • Support disordered site rendering in structure_(2|3)d_plotly() by @janosh in #301
  • Remove residual_vs_actual() by @janosh in #302
  • chem_env_treemap by @janosh in #303
  • Drop matplotlib dependency, refactor few remaining matplotlib functions to plotly by @janosh in #305
  • MatterViz widgets by @janosh in #311

🎉 New Features

  • Sunburst of coordination numbers and environments by @janosh in #295

🛠 Enhancements

  • cluster_compositions add annotate_points keyword by @janosh in #291
  • Add element color legend to plotly 2d and 3d structure visualizations by @janosh in #298
  • Auto-render pymatgen/ASE objects when returned from notebook cells by @janosh in #299
  • structure_(2|3)d_plotly add cell_boundary_tol: float | dict[str, float] by @janosh in #300

🐛 Bug Fixes

🧹 House-Keeping

  • Rename structure_(2|3)d_plotly to structure_(2|3)d by @janosh in #304
  • Update pytest-split durations by @janosh in #306

New Contributors

Full Changelog: v0.16.0...v0.17.0

v0.16.0

02 May 11:42
Compare
Choose a tag to compare

What's Changed

  • Add py-pkg-treemap() #290
  • Add color_scale param to allow for linear, logarithmic, arcsinh scaling of property values in cluster_compositions #288
  • refactor cluster_compositions to take DataFrame as 1st arg, not composition list #287
  • Test example scripts with uv run in CI #286
  • New cluster module with functions for embedding, projecting and scattering compositions #285
  • spacegroup_sunburst and chem_sys_sunburst: add keywords max_slices and max_slices_mode: other | none #284
  • Multi-trace plotly powerups #283
  • brillouin_zone_3d now supports multiple structures/atoms in customizable grid layouts #282
  • Add max_cells: int | None keyword to chem_sys_treemap #281
  • structure_(2|3)d_plotly enable gradient-colored bonds #280
  • Auto font color for high contrast of element symbols in ptable_heatmap_splits_plotly #279
  • Update luminance calculation to use WCAG 2.0 standard coefficients #278
  • Fix structure_2d_plotly rotation keyword not applying to unit cell #276
  • spglib to moyo #275
  • fix bond drawing in structure_3d_plotly with better image atom handling #274
  • Use SI suffix number format in ptable colorbar tick labels #273
  • fix error in docstring #271
  • Remove matplotlib-based periodic table plotting functions #270
  • Ward metallic glasses train/val/test splits #269
  • Codecov #268
  • Support per-split colorbars and colorscales in ptable_heatmap_splits_plotly() #267
  • add enhance_parity_plot() powerup #266
  • add treemap.py with new chem_sys_treemap plot function #265
  • add chem_sys_sunburst() to pymatviz/sunburst.py to visualize chemical system distributions #264
  • test metallic glass feature engineering and model evaluation f0c5174
  • better colorbar tick formatting and spacing in density_scatter_plotly d1d51b4
  • RDF plotting hide legend for single structure dc8a1a2
  • fix confusion_matrix() mismatch of false-positive/negative counts and heatmap color ae5b629
  • contrast_ratio() in pymatviz/utils/plotting.py to calculate color contrast according to WCAG 2.0 b7c30cf
  • Add script to fetch and update papers citing pymatviz (#277) 6a2b831
  • add examples/mlip_phonons.py 608a12f
  • clean up examples/diatomics/calc_mlip_diatomic_curves.py and support multiple ML models d6fe3d9
  • add examples/compare_elastic_constants.py testing MACE vs MP PBE 2861298
  • Refactor ROC and PR curve no-skill line plotting 6d68cc1
  • readme.md add links to source and example code for each plot function 65ccb7c
  • add assets/scripts/key_enum_table.py to visualize Key enum attributes with Plotly 0598bb5
  • delete unused enums Model + ElemColorMode ee296bc
  • fix ptable_heatmap_splits_plotly() incorrectly handling hide_f_block keyword resulting in missing tiles for Rf 104 through Og 118 b9ccbf0
  • force LabelEnums to have labels, gives .label type str causing less mypy headache a6825ff

Full Changelog: v0.15.1...v0.16.0

v0.15.1

28 Jan 18:38
Compare
Choose a tag to compare

What's Changed

🛠 Enhancements

  • structure_(2|3)d_plotly now support ASE Atoms and sequences of them by @janosh in #262
  • Remove hard-coded gridsize in density_hexbin by @jcwang587 in #263
  • add molecular dynamics attributes to Key enum 4b55a40
  • better Key.unit formatting: replace unicode sup/superscripts with <sup>/<sub>+ASCII eb12217

🧹 Linting

  • bump ruff to 0.9 and auto-fix 6989ba5

📖 Documentation

  • calculate MACE-MPA-0 diatomic curves 4dc5f1e

New Contributors

Full Changelog: v0.15.0...v0.15.1

v0.15.0

20 Dec 23:07
Compare
Choose a tag to compare

What's Changed

💥 Breaking Changes

  • plotly ROC and precision-recall curves by @janosh in #253
  • Delete pymatviz/classify/curves_matplotlib.py by @janosh in #254

🎉 New Features

🛠 Enhancements

  • Add element color schemes alloys by @janosh in #255
  • Support phonopy TotalDos and BandStructure in phonon_dos and phonon_bands plots by @janosh in #256
  • Multi-line ptable_scatter_plotly by @janosh in #260

🐛 Bug Fixes

  • Fix phonon_bands for band structures with different paths in k-space by @janosh in #250

Full Changelog: v0.14.0...v0.15.0

v0.14.0

21 Nov 15:51
Compare
Choose a tag to compare

What's Changed

💥 Breaking Changes

  • [Breaking] Split utils into sub-modules, move typing from utils to top-level (pmv.typing) by @DanielYang59 in #248

🎉 New Features

🛠 Enhancements

  • Better ptable_hists_plotly defaults by @janosh in #244
  • phonon_bands enable custom acoustic/optical bands by @janosh in #249

📖 Documentation

🤷‍♂️ Other Changes

  • Enhance warning message for default return type change of ptable_heatmap by @DanielYang59 in #240

Full Changelog: v0.13.2...v0.14.0

v0.13.2

03 Nov 19:32
Compare
Choose a tag to compare

What's Changed

💥 Breaking Changes

  • Fix ptable_heatmap_ratio following change of default count_elements fill_value to 0 by @DanielYang59 in #226

🧹 House-Keeping

  • Split coordination.py module into plotly.py and helpers.py by @janosh in #239

🏥 Package Health

Full Changelog: v0.13.1...v0.13.2

v0.13.1

18 Oct 20:36
Compare
Choose a tag to compare

Hot fix release for

ImportError: cannot import name 'SymmetryUndeterminedError' from 'pymatgen.symmetry.analyzer'
stacktrace
    from pymatviz.enums import LabelEnum
/opt/hostedtoolcache/Python/3.12.7/x64/lib/python3.12/site-packages/pymatviz/__init__.py:22: in <module>
    from pymatviz import (
/opt/hostedtoolcache/Python/3.12.7/x64/lib/python3.12/site-packages/pymatviz/structure_viz/__init__.py:5: in <module>
    from pymatviz.structure_viz.mpl import structure_2d
/opt/hostedtoolcache/Python/3.12.7/x64/lib/python3.12/site-packages/pymatviz/structure_viz/mpl.py:22: in <module>
    from pymatgen.symmetry.analyzer import SpacegroupAnalyzer, SymmetryUndeterminedError

Full Changelog: v0.13.0...v0.13.1

v0.13.0

17 Oct 19:56
Compare
Choose a tag to compare

What's Changed

💥 Breaking Changes

🎉 New Features

🛠 Enhancements

  • Custom site hover texts in pmv.structure_(2|3)d_plotly by @janosh in #228
  • Experimental: add show_bonds: bool | NearNeighbors = False to structure_(2|3)d_plotly by @janosh in #233
  • Add full_rdf by @janosh in #234
  • Add coordination_vs_cutoff_line plot function by @janosh in #236

🐛 Bug Fixes

  • Fix /api docs by migrating to remark/rehype by @janosh in #237

🏥 Package Health

  • Reuse optional dependency groups for single source of truth in pyproject.toml by @DanielYang59 in #231

Full Changelog: v0.12.0...v0.13.0