Changelog

Unreleased

  • 💥 Widgets render the matterviz-anywidget 0.6.0 bundle; synced traits mirror its JS contract exactly (tests/widgets/test_js_prop_parity.py). Renamed: BandStructureWidget(band_structure=)band_structs=, DosWidget(dos=)doses= (also BandsAndDosWidget; both take a {label: obj} dict to overlay several), log_scalelog on HeatmapMatrixWidget/PeriodicTableWidget, show_gizmogizmo (bool or GizmoOptions dict) on StructureWidget/TrajectoryWidget. Removed: controls on XrdWidget/RdfPlotWidget/ScatterPlotWidget/ScatterPlot3DWidget, ScatterPlotWidget.point_events, BarPlotWidget.point_tween.
  • 💥 StructureWidget.isosurface_settings is layers-only ({"layers": [{isovalue, color, opacity, visible, show_negative, negative_color}], "wireframe", "halo"}); volumetric_data accepts pymatgen VolumetricData objects and nested-grid dicts, emitted as flat values + dims (shape errors are reported by the renderer). HistogramWidget.series samples live in values (legacy {x, y} still binned on y).
  • 🎉 Plot widgets gain controls_open (two-way), controls_toggle_props, controls_pane_props; ScatterPlotWidget gains show_legend, marker_renderer; ScatterPlot3DWidget gains show_legend; StructureWidget gains two-way active_volume_idx, display_mode ("structure" | "slice"), slice_settings; TrajectoryWidget gains atom_type_mapping for LAMMPS dumps loaded via data_url.
  • 🐛 Headless export (to_img/render_report) broke from the second call on in plain scripts without nest_asyncio: sync Playwright’s own “running” loop was mistaken for a Jupyter kernel loop. Only a foreign loop takes the async path now; nest-asyncio is part of the export extra.
  • 🐛 normalize_plot_json no longer collapses 1-element numpy arrays / pandas Series to scalars.
  • 🚧 CI installs playwright so headless-export and trait-parity tests run against the pinned matterviz-anywidget release (MATTERVIZ_ANYWIDGET_DIR for a local build).

v0.18.0

7 June 2026

💥 Breaking Changes

🎉 New Features

🛠 Enhancements

🐛 Bug Fixes

v0.17.6

2 May 2026

🛠 Enhancements

🐛 Bug Fixes

💡 Refactoring

v0.17.5

4 March 2026

🛠 Enhancements

v0.17.4

11 February 2026

🛠 Enhancements

🐛 Bug Fixes

💡 Refactoring

🏷️ Type Hints

New Contributors

v0.17.3

7 November 2025

💥 Breaking Changes

🐛 Bug Fixes

🏷️ Type Hints

v0.17.2

14 August 2025

🛠 Enhancements

🐛 Bug Fixes

🏷️ Type Hints

v0.17.1

29 July 2025

🛠 Enhancements

🐛 Bug Fixes

v0.17.0

22 July 2025

🎉 New Features

💥 Breaking Changes

🛠 Enhancements

🐛 Bug Fixes

🧹 House-Keeping

New Contributors

v0.16.0

2 May 2025

  • 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 #279
  • Update luminance calculation to use WCAG 2.0 standard coefficients #278
  • Fix structure_2d rotation keyword not applying to unit cell #276
  • spglib to moyo #275
  • fix bond drawing in structure_3d 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() #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 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() 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

v0.15.1

28 January 2025

  • Remove hard-coded gridsize in density_hexbin #263
  • structure_2d and structure_3d now support ase.Atoms and sequences of them on top of pymatgen.Structure #262
  • add molecular dynamics attributes to Key enum 4b55a40
  • better Key.unit formatting: replace unicode sup/superscripts with <sup>/<sub>+ASCII eb12217
  • bump ruff to 0.9 and auto-fix 6989ba5
  • calculate MACE-MPA-0 diatomic curves 4dc5f1e

v0.15.0

21 December 2024

  • Multi-line ptable_scatter #260
  • Hetero-nuclear diatomics example with MACE #259
  • Add ptable_scatter #258
  • Remove cumulative.py and associated tests + assets #257
  • Support phonopy TotalDos and BandStructure in phonon_dos and phonon_bands plots #256
  • Add brillouin_zone_3d plot function #251
  • Add element color schemes alloys #255
  • delete pymatviz/classify/curves_matplotlib.py #254
  • plotly ROC and precision-recall curves #253
  • Add pymatviz.classify.confusion_matrix #252
  • Fix phonon_bands for band structures with different paths in k-space #250
  • keys.yml add more related to electronic, mechanical, thermal, and magnetic properties f377d95
  • classify/curves_plotly.py show threshold on hover, add_add_no_skill_line helper 77e765a
  • breaking: rename Key.cse to computed_structure_entry ab691bb
  • test_brillouin_zone_3d_trace_counts 44353aa

v0.14.0

21 November 2024

  • [Breaking] Split utils into sub-modules, move typing from utils to root (pmv.typing) #248
  • phonon_bands enable custom acoustic/optical bands #249
  • Split make_assets scripts by plot functions #247
  • ptable_heatmap_splits #246
  • Better ptable_hists defaults #244
  • Add ptable_hists #243
  • Enhance warning message for default return type change of ptable_heatmap #240
  • add @stylistic/eslint-plugin to fix eslint commit hook (closes https://github.com/janosh/pymatviz/issues/197) #197
  • add coordination_nums_in_structure in pymatviz/coordination/helpers.py bd54679
  • ptable_hists add x_axis_kwargs: dict[str, Any] | None = None to tweak x ticks and allow annotations renamed to be callable 6a6faad
  • sankey_from_2_df_cols add kwarg annotate_columns: bool | dict = True eed306a
  • new/renamed Key attributes n_structs, n_materials, n_molecules, n_samples, n_configs 786a666

v0.13.2

3 November 2024

  • Split coordination.py module into plotly.py and helpers.py #239
  • Fix ptable_heatmap_ratio following change of default count_elements fill_value to 0 #226
  • Speedup import and add regression check for import time #238
  • address coordination_hist TODO ‘get the right y_max when bar_mode=“stack”’ f73ba99
  • new Key enum attributes for DFT/experimental settings and paper/code metadata 8426bc2
  • dynamic element_pair_rdfs cutoff, defaults to 2x max_cell_len, allow negative values interpreted as scaling factor to max_cell_len (instead of absolute length in Angstrom) d6b1b01

v0.13.1

18 October 2024

  • fix ImportError: cannot import pymatgen.symmetry.analyzer.SymmetryUndeterminedError 298c49a

v0.13.0

17 October 2024

  • Fix /api docs by migrating to remark/rehype #237
  • Add coordination_vs_cutoff_line plot function #236
  • Reduce duplicate in dependency declare #231
  • Coordination number histograms #235
  • Add full_rdf #234
  • Experimental: add show_bonds: bool | NearNeighbors = False to structure_(2|3)d_plotly #233
  • drop correlation.py module #229
  • Custom site hover texts in pmv.structure_(2|3)d_plotly #228
  • Rainclouds #227
  • replace “sankey-crystal-sys-to-spg-symbol” with “sankey-spglib-vs-aflow-spacegroups” 3d818a1
  • more Key enum attributes for various errors and number of steps properties 701a445

v0.12.0

7 October 2024

  • use pytest-split in GitHub Action #224
  • Vertically/horizontally stacked XRD plots #223
  • add scaling_factor to pymatviz/ptable/plotly.py #210
  • Support plotting site vectors like forces/magmoms in structure_(2|3)d_plotly #220
  • Add add_annotation functionality for ptable plotters #200
  • Render spheres with hover tooltip on unit cell corners in pmv.structure_(2|3)d_plotly #219
  • structure_(2|3)d_plotly allow overriding subplot title’s y position and anchor #218
  • pin kaleido==0.2.1 #217
  • Add structure_3d #214
  • Clean up var names in unit tests, avoid MP API access in GitHub workflow #207
  • Add structure_2d to pymatviz/structure_viz.py #213
  • Fix xrd_pattern not allowing annotate_peaks=0 to disable peak annotation #212
  • Fix calculate_rdf not accounting for periodic boundaries #211
  • Support list/dict of structures in element_pair_rdfs #206
  • Add kwarg use_tooltips: bool = True to df_to_html (prev df_to_html_table) #205
  • Exclude tests from source distribution, and drop python2 tag for wheel #202
  • element_pair_rdfs plots radial distribution functions (RDFs) for element pairs in a structure #203
  • Add IS_IPYTHON global #198
  • ruff fixes #196
  • breaking: rename <xyz>_kwds -> <xyz>_kwargs for consistency 24261ca

v0.11.0

1 September 2024

  • Bump min supported Python to 3.10 #195
  • fix ptable_heatmap return type plt.axes->plt.Axes 1de350a

v0.10.1

18 August 2024

  • Self-import refactor #194
  • Fix svgo workflow for ptable scatter plots #187
  • density_scatter add kwarg facet_col: str | None = None #193
  • bin_df_cols leave input df unchanged #192
  • Re-export all submodules/subpackages from pymatviz.__init__.py #191
  • fix missing jinja2 dep at import time fb6c9df

v0.10.0

31 July 2024

  • density_scatter QoL tweaks #190
  • Breaking: drop plot_ prefix from multiple functions #189
  • Add protostructure terminology to enum #185
  • Update the function names for wren utils given breaking changes in Aviary #182
  • [Breaking] Refactor ptable heatmap plotter #157

v0.9.3

18 July 2024

  • Fix ptable scatter examples in homepage #180
  • Add pymatviz.io.df_to_svg #179
  • Better default ptable_heatmap tooltips #178
  • remove skip tag for tests #177
  • Moving enums may have broken end users pickle’s, reduce to str when pickling to be more backwards compatible going forward. #176
  • Better density_scatter #175
  • new ML model, metrics and computational details related enum keys b6cdca3

v0.9.2

7 July 2024

  • Fix ptable_heatmap for log=True #174
  • Fix missing keys Te + Nd in ELEM_COLORS_VESTA and support it in plot_structure_2d #173
  • Fix log_density in density_scatter #172

v0.9.1

4 July 2024

  • Split powerups module by backend: matplotlib/plotly/both #171
  • Fix count_elements for series of Composition #170
  • Fix and test ptable_heatmap text color logic #169
  • plot_xrd_pattern accept DiffractionPattern | Structure as input #168
  • Add plot_xrd_pattern() for creating interactive XRD patterns with plotly #167
  • Fix density_scatter metric annotation #166
  • Add toggle_log_linear_y_axis powerup #165
  • Fix bad NPY002 migration #163
  • refactor to explicit ax passing instead of relying on plt.gca() in example scripts 7912ec0
  • add_ecdf_line improve adapting trace_defaults from target_trace 4b451a3

v0.9.0

21 June 2024

  • Fix ruff NPY002 #162
  • density_scatter() #161
  • Add pymatviz.histogram.plot_histogram #159
  • Fix ptable_heatmap_ratio legend #158
  • ptable_scatters allow 3rd data dimension for colormap #155
  • Support passing sequence of structures to plot_structure_2d() to be plotted in grid #156
  • density_scatter() (#161) #160
  • when passed a series, plot_histogram now use series name as x-axis title e9697fc
  • import std lib StrEnum from enum if sys.version_info >= (3, 11) 510452a
  • add plot_structure_2d() keyword subplot_title: Callable[[Structure, str | int], str] | None = None 523101b

v0.8.3

30 May 2024

  • Fix PTableProjector.hide_f_block property #154
  • Handle missing value (NaN) and infinity for ptable data #152
  • [Enhancement/Breaking] Refactor ptable_hists #149
  • Add keyword log: bool = False to spacegroup_hist to log scale y-axis #148
  • MatPES EDA script #147
  • Fix ptable_heatmap_splits TypeErrors #146
  • Add mlff_phonons.ipynb example notebook #144
  • split examples/_generate_assets.py by pymatviz module whose plot functions are made assets for ef3f066
  • show ptable-heatmap-splits-3 in readme 1be63ea
  • fix docs build: ParseError: Unexpected character ’“’ fbb2c8f

v0.8.2

11 May 2024

  • Add pymatviz/enums.py for SSOT on dataframe column and dict key names #143
  • Add keyword hide_f_block: bool = None (La and Ac series) to ptable plotters #140
  • Remove text background and fix z-order in structure_viz #139
  • Refactor ptable plotters and add ptable_heatmap with diagonally-split tiles #131
  • Migrate to flat eslint config file #137
  • Copy color options for element types from ptable_plots to ptable_hists #129
  • MACE-MP pair repulsion curves #127
  • Add validate_fig decorator utility #126
  • add_best_fit_line() power-up #125
  • plot_phonon_bands() add kwargs branch_mode: "union" | "intersection" = "union" and branches: Sequence[str] = () #124
  • breaking: rename fmt_spec keyword to fmt in si_fmt() for code base consistency 4d3091e
  • add decimal_threshold: float = 0.01 to si_fmt() 6ecf68a
  • fix docs build error and address bullet point 3 in #138 492cd53
  • update bibtex citation author list aa132d9

v0.8.1

11 February 2024

  • Breaking: rename custom plotly template pymatviz_(black->dark) #123
  • Add ptable_scatter #122
  • Minor format tweaks #120
  • Add pytest fixtures df_(float|mixed) to replace deleted pd._testing.make(Mixed)DataFrame() #121
  • add_ecdf_line() utility for plotting empirical cumulative distribution functions #117
  • Spacegroup hist plotly #116
  • Add plot_phonon_bands_and_dos() #115
  • Add show_values: bool = True to ptable_heatmap() and last_peak_anno: str to plot_phonon_dos() #114
  • Add plot_phonon_dos() for interactive plotly DOS plots #113
  • _generate_assets.py add code for assets/(phonon-bands-and-dos-dft|phonon-bands-dft|phonon-dos-dft).svg 93f72dc
  • ruff enable PD901+PLW2901 and fix violations 36f4771
  • breaking: absorb keywords sort and density_bins into hist_density_kwargs 64da6b2
  • breaking: rename elements_hist to hist_elemental_prevalence in pymatviz/histograms.py ebd067a
  • gray-shade negative frequencies in phonon bands and bands+DOS plots 882a6ca
  • breaking: remove residual_hist() from pymatviz/histograms.py 7780f68
  • mv dataset_exploration examples 8bfa4b8

v0.8.0

15 December 2023

  • Add plot_band_structure in new pymatviz/bandstructure.py module #112
  • Add hist_kwds arg to ptable_hists to customize histograms #111
  • Define custom pymatviz plotly templates #110
  • Support matplotlib Axes and Figure in add_identity_line #109
  • Tweaks #108
  • Add function ptable_hists #100
  • ptable_heatmap support 1s, 0s and negative values with log=True #107
  • ptable_heatmap add keywords cbar_range and cbar_kwargs #105
  • Add class TqdmDownload #104
  • Breaking: rename get_crystal_sys to crystal_sys_from_spg_num #103
  • Support semi-log + log-log plots in add_identity_line #102
  • plot_structure_2d add special site_labels: "symbol" | "species" #101
  • ptable_heatmap_ratio allow disabling not_in_numerator, not_in_denominator, not_in_numerator c4bc03d
  • fix add_identity_line for log-scaled matplotlib Axes: TypeError: ‘slope’ cannot be used with non-linear scales ead0ce9
  • add and test si_fmt_int in pymatviz/utils.py fc40cd7

v0.7.3

4 November 2023

  • Add styled_html_tag() in utils.py #99
  • Add si_fmt() for formatting large numbers in human-readable format #98

v0.7.2

30 October 2023

  • Fix and rename df_to_(svelte->html)_table #97
  • Add keyword default_styles: bool = True to df_to_pdf #96

v0.7.1

22 October 2023

  • Periodic table UX improvements #95
  • annotate_bars add keyword adjust_test_pos: bool = False #94
  • Add df_to_svelte_table #93
  • fix invalid count_mode ValueError err msg ae77997

v0.7.0

9 October 2023

  • Bump minimum Python version to 3.9 #92
  • Split pymatviz/io.py out from pymatviz/utils.py and add df_to_pdf() export function #91
  • Add KDE support to bin_df_cols utility function #90
  • Add patch_dict() utility #88
  • Breaking: rename ptable_heatmap and annotate_metrics float precision kwargs to fmt #87
  • Rename ptable_heatmap(_plotly) 1st arg: elem_values->values #86

v0.6.3

24 July 2023

  • Fix “Loading [MathJax]/extensions/MathMenu.js” in Plotly figures exported to PDF #83
  • Tiny doc update in ptable.py #82
  • Better type errors #80
  • ruff enable more rule sets #79
  • Disable save_fig() in CI #78
  • adhere to PEP 484 (no implicit optional) 8e50218
  • fix ruff TCH002,TCH003 d60276b
  • add ptable_heatmap kwarg label_map: dict[str, str] | False | None = None ef40171
  • migrate site to eslint-plugin-svelte 91d7909

v0.6.2

29 April 2023

  • Per-module doc pages #77
  • Refactor make_docs.py #76
  • DRY workflows #74
  • More flexible annotate_metrics util #73

v0.6.1

21 March 2023

  • Add kwarg axis: bool | str = "off" to plot_structure_2d() #72
  • Add ptable_heatmap cbar_precision kwarg #70
  • add changelog.md via auto-changelog 05da617
  • add half-baked /plots and /notebook pages ed171ec
  • add svelte-zoo PrevNext to notebooks pages 05368c0
  • add new option ‘occurrence’ for CountMode = element_composition|fractional_composition|reduced_composition bf1604a
  • refactor ptable_heatmap()‘s tick_fmt() and add test for cbar_precision kwarg 3427e1f
  • plot_structure_2d() in site /api docs fcf75de

v0.6.0

21 February 2023

v0.5.3

20 February 2023

  • Pyproject #69
  • Add Ruff pre-commit hook #68
  • scatter_density() use x, y args as axis labels if strings 0f2386a
  • fix util save_and_compress_svg() and update plot_structure_2d() assets e0020aa
  • use redirect in layout.ts instead of ugly DOM href surgery to forward readme links to GH repo 7da3c0c
  • rename add_mae_r2_box() to annotate_mae_r2() c550332

v0.5.2

13 January 2023

  • pre-commit autoupdate #65
  • Deploy demo site to GitHub pages #64
  • Configure devcontainer for running notebooks in Codespace #63
  • Customizable parity stats #61
  • Support dataframes in true_pred_hist() #60
  • Support dataframes in relevance and uncertainty plots #59
  • Allow passing in dataframes and x, y as column names in parity plots #58
  • plot_structure_2d() doc str add “multiple structures in single figure example” #57
  • update examples/mp_bimodal_e_form.ipynb with MP r2SCAN beta release formation energies 396bdf4
  • add save_fig() to pymatviz/utils.py covered by test_save_fig() bcb8a06
  • add assets/make_api_docs.py 1b05792
  • Revert “Python 3.7 support (#55)” 4335001
  • remove google colab compat notices from example notebooks e7cc488
  • tweak docs CSS, add site footer 6319379
  • type test functions, update commit hooks incl. mypy, setup.cfg set implicit_optional=true which defaults to false in newer mypys 9303f7d
  • add docformatter pre-commit hook 25d700c
  • add citation.cff 531133c
  • residual_hist() remove args y_true, y_pred, now takes y_res directly 5c8ccbe

v0.5.1

8 October 2022

  • Python 3.7 support #55
  • move plot_defaults.py into pymatviz pkg #23973
  • add kwarg y_max_headroom=float to annotate_bars() d613d99

v0.5.0

21 September 2022

  • Support log-scaled heat maps in ptable_heatmap() #53
  • Improve tests for parity.py and relevance.py #51
  • Fix plot_structure_2d() show_bonds for disordered structures #50
  • Dataset exploration #49
  • Add examples/mp_bimodal_e_form.ipynb #47
  • Add unary ptable heatmap plot to examples/mprester_ptable.ipynb #46
  • fix: add .py to readme link #45
  • add test_ptable_heatmap_kwarg_combos #44
  • Fix windows CI #43
  • rm data/ex-ensemble-roost.csv, generate random regression data to plot example assets with numpy instead 11a47d3
  • breaking: rename {elements=>ptable}.py 1a87845
  • merge pymatviz/{quantile,ranking}.py into new pymatviz/uncertainty.py c4e0872
  • add examples/mprester_ptable.ipynb 04bf077
  • cleaner plt.Axes and go.Figure imports d21e6b4
  • add JupyterDash example to mprester_ptable.ipynb c4381d3
  • remove save_reference_img() from conftest.py 73fd600
  • rename cum_{res,err} to cumulative_{residual,error} 5d52181
  • add readme table with links to open notebooks in GH, Colab, Binder 13df583
  • add standardize_struct kwarg to plot_structure_2d() 21d1264
  • add pre-commit hook https://github.com/jendrikseipp/vulture 9dfb806

v0.4.4

9 July 2022

v0.4.3

2 June 2022

  • Fix GH not showing interactive Plotly figures in Jupyter #39
  • Add new plotly function sankey_from_2_df_cols() #37
  • note relation to ase.visualize.plot.plot_atoms() in plot_structure_2d() doc string f4c9fb7
  • corrections to element property data in pymatviz/elements.csv (thanks @robertwb) + origin link 444f9ba
  • fix add_identity_line() if plotly trace data contains NaNs c31ac55

v0.4.2

16 May 2022

  • Improve ptable_heatmap() colorscale kwarg #35
  • [pre-commit.ci] pre-commit autoupdate #34
  • Accept pmg structures as input for spacegroup_(hist|sunburst) #33
  • Fix spacegroup_hist() crystal system counts #32
  • Expand testing of keyword arguments #31
  • generate_assets.py refactor save_and_compress_svg() a47b811
  • add add_identity_line() in tests/test_utils.py faa6a52
  • readme remove ml-matrics to pymatviz migration cmd 0d123d4

v0.4.1

20 March 2022

  • Support space groups symbols as input to spacegroup_hist() #30
  • Support space groups symbols as input to spacegroup_sunburst() #28
  • Add some Juypter notebooks with usage examples #25
  • rm local structures data/structures/mp-*.yml, use matbench phonon structures instead 7ee4105
  • GH action bump setup-python to v3 9f21079
  • incl jupyter notebooks in ml-matrics to pymatviz migration cmd 619075f
  • readme clarify not being associated with pymatgen 64c95fb
  • fix plt.tight_layout() throwing AttributeError on density_hexbin plots (https://github.com/matplotlib/matplotlib/issues/22576) e5599a6
  • compress new SVG assets fe88271

v0.4.0

1 March 2022

  • Rename package to pymatviz (formerly ml-matrics) #23

v0.3.0

28 February 2022

v0.2.6

6 February 2022

  • add test for count_elements 4060d4e
  • use future import for py 3.10 type annotations ae5aa96
  • fix get_crystal_sys raise ValueError on non-positive space group numbers 9a535f7
  • add .github/workflows/publish.yml 7ce1c55
  • use actions/setup-{python,node} auto caching 613706c
  • drop py3.7 support, update pre-commit hooks 93c3eeb
  • gha test.yml add pytest-cov 16c92ab
  • readme remove asset compression note, rename scripts 41d5b6c

v0.2.5

26 November 2021

  • add ptable_heatmap() (closes #16) #16
  • delete metrics.py module + tests as they’re better placed in CompRhys/aviary#13 6870f2d
  • add new plotly fig spacegroup_sunburst 871c42a
  • some tweaks to ptable_heatmap, delete unused softmax + one_hot utils 3e931f2

v0.2.4

2 November 2021

  • ptable_heatmap add label precision kwarg, change text color to white on dark tiles, spacegroup_hist better label fontsizes, doc string improvements all around, pre-commit enforce all assets are SVGs d45511f

v0.2.3

18 October 2021

  • refactor ptable_heatmap to plot arbitrary data, not just elemental prevalence, add element properties to elements.csv 57ceb4d
  • ptable_heatmap add heat_labels kwarg for fraction, percent or None heat labels, make ptable_heatmap_ratio colors and legend customizable c3210bf

v0.2.2

14 October 2021

  • add typing_extensions as py37 dep and dynamically import Literal e69face
  • add codespell pre-commit hook + fix typos 58bfa75

v0.2.1

7 October 2021

  • readme move ptable_heatmap() and spacegroup_hist() plots to top ac000a4
  • spacegroup_hist() add crystal system counts 693307e
  • [pre-commit.ci] pre-commit autoupdate d6227dd

v0.2.0

4 October 2021

  • doc string improvements 6572d85
  • rename ptable_elemental_prevalence -> ptable_heatmap, ptable_elemental_ratio -> ptable_heatmap_ratio f4c915d
  • add pydocstyle pre-commit hook a379621
  • err_decay() accept and return axes object 60c0ceb
  • handle nan values in add_mae_r2_box be0acf1
  • fix on.paths in CI workflows f9e9ba2

v0.1.9

26 August 2021

v0.1.8

25 August 2021

  • [pre-commit.ci] pre-commit autoupdate #12
  • use numpy.typing.NDArray for type hints c99062c
  • add some more pre-commit-hooks dfb93e4

v0.1.7

3 July 2021

  • fully type annotate all functions and fix mypy errors b5729e3

v0.1.6

2 July 2021

  • fix ptable_elemental_prevalence cbar_max kwarg 9c92e7c

v0.1.5

12 May 2021

  • [pre-commit.ci] pre-commit autoupdate #11
  • ptable_elemental_prevalence change color map as black text on dark green (high prevalence) elements was unreadable 8bc17b5

v0.1.4

6 May 2021

  • add count as label below element symbols in ptable_elemental_prevalence 1a8d077
  • add format-ipy-cells pre-commit hook 7f83ce3
  • [pre-commit.ci] pre-commit autoupdate 70a5695

v0.1.3

10 April 2021

  • ptable_elemental_prevalence add cbar_max kwarg 829f762

v0.1.2

6 April 2021

  • release as PyPI package 1ab0d29
  • manually merge branch metrics. thx @CompRhys! 3ddb232
  • rename repo mlmatrics -> ml-matrics b65f50f
  • fix ptable_elemental_prevalence log scale colorbar 0913416
  • readme use referenced links for raw.githubusercontent images cbd1033
  • rename branch master -> main 50d73c6
  • fix setup.cfg to not pollute top level namespace in site-packages with generic data folder 10c8589

v0.1.1

6 April 2021

  • fix setup.cfg to not pollute top level namespace in site-packages with generic data folder 68a84b2
  • [pre-commit.ci] pre-commit autoupdate 49caa7f

v0.1.0

5 April 2021

  • concept names, publication plot params #2
  • clean up cumulative plots, add better data source for example plots, rename density_scatter to parity #1
  • add spacegroup_hist to histograms.py 41297ec
  • add clf_metrics.py ce4f864
  • initial commit 4a985c1
  • add correlation.py with marchenko_pastur plot 2e6665c
  • add more tests, especially for kwargs 600adbf
  • add residual_vs_actual(), residual_hist() in new histograms.py, add readme glossary ed8393c
  • release as PyPI package 511b5e3
  • manually merge branch metrics. thx @CompRhys! c3c284d
  • add bar values percent or count to hist_elemental_prevalence, more tests for elements.py + log_scale plots in readme 8d722f8
  • rename repo mlmatrics -> ml-matrics d5b741c
  • change ptable prevalence colors, log now uses base 10 494ac24
  • add true_pred_hist to histograms.py 0ea0ef6
  • add new plot ptable_elemental_ratio 6e91792
  • add err_decay to parity.py, display MAE + R^2 on all parity plots 3999b60
  • add type hints to parity.py ea94b0d
  • feature: add regression basic metrics for ensembles 141f4d9
  • fea: allow pre-computed elem_counts for ratio plot, allow cmap to be changed via kwarg 7ac598b
  • fix ptable_elemental_prevalence log scale colorbar c9d085e
  • add err_decay plots + plot function names to readme 9e994bb
  • err_decay use analytic rand_mean rather than estimating from sample be2b834
  • change ptable plots color bar to show log numbers when log_scale=True ed35532
  • add doc strings for density_scatter, residual_vs_actual, revert dependence on numpy.typing for now 006fdff
  • refactor using ax.set property batch setter 5a41284
  • add marchenko-pastur example with significant eigenvalue db7e725
  • readme add tip for how to depend on this package, regenerate requirements with pipreqs —force . cdae757
  • fix spacegroup_hist bars having wrong face colors 6a9ee75
  • add github action to compress SVGs on PR 2be7725
  • appease linter 39a3b15
  • speed up count_elements by removing for loop 1495701
  • add doc strings to relevance.py f372631
  • rename branch master -> main f56cf6e
  • fix requirements typo 9653a82
  • ptable_elemental_prevalence display original values above log-scale colorbar 665b05c
  • fix qq_gaussian miscal_area 8239949