4 March 2026
- Add element and site projected phonon DOS support by @janosh in #339
- Add widget state export helpers and harden projected DOS tests by @janosh in #340
- Add periodic table, 3D scatter, heatmap, RDF, spacegroup, and chem pot widgets by @janosh in #342
11 February 2026
- Add 8 new MatterViz widgets for band structures, DOS, convex hulls, and more by @janosh in #336
- Add
show_image_vectorsoption tostructure_2dandstructure_3dby @lan496 in #338
- Dynamically link to function source line number from
readme.mdby @DanielYang59 in #333 - Fix minor colorbar tick issues in ptable_heatmap_plotly when log=True by @chhyyi in #334
- fix: handle pymatgen Magmom objects in show_site_vectors by @lan496 in #337
- Separate data preprocessing from plotters by @janosh in #332
- Fix all
tyv0.9.0 errors by @janosh in #331
7 November 2025
- Remove
density_scatteraliasdensity_scatter_plotlyby @janosh in #323
- Fix widget arg names by @janosh in #322
- Handle disordered structures in
coordination_vs_cutoff_lineby @janosh in #326
- Remove unused type ignores by @janosh in #328
14 August 2025
py_pkg_treemap()add heatmap mode to color by module stats such as coverage by @janosh in #317
- Upgrade
uv_build>=0.8.10to fix wheel permissions issue by @janosh in #320
- Replace
mypywithtyinpre-commitby @DanielYang59 in #314
29 July 2025
- Bump
mattervizby @janosh in #315
- Fix
FileNotFoundErrorpyproject.tomlin 0.17.0 by @janosh in #313
22 July 2025
- MatterViz widgets by @janosh in #311
- Sunburst of coordination numbers and environments by @janosh in #295
- Add
cell_size_fn: Callable[[ModuleStats], float]keyword topy_pkg_treemapby @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_treemapby @janosh in #303- Drop
matplotlibdependency, refactor few remainingmatplotlibfunctions toplotlyby @janosh in #305
cluster_compositionsaddannotate_pointskeyword 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_plotlyaddcell_boundary_tol: float | dict[str, float]by @janosh in #300
- Fix plotly validators by @bmaranville in #310
- Rename
structure_(2|3)d_plotlytostructure_(2|3)dby @janosh in #304 - Update
pytest-splitdurations by @janosh in #306
- @bmaranville made their first contribution in #310
2 May 2025
- Add
py-pkg-treemap()#290 - Add
color_scaleparam to allow for linear, logarithmic, arcsinh scaling of property values incluster_compositions#288 - refactor cluster_compositions to take DataFrame as 1st arg, not composition list
#287 - Test example scripts with
uv runin CI#286 - New
clustermodule 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
plotlypowerups#283 brillouin_zone_3dnow supports multiple structures/atoms in customizable grid layouts#282- Add
max_cells: int | Nonekeyword tochem_sys_treemap#281 structure_(2|3)d_plotlyenable gradient-colored bonds#280- Auto font color for high contrast of element symbols in
ptable_heatmap_splits_plotly#279 - Update
luminancecalculation to use WCAG 2.0 standard coefficients#278 - Fix
structure_2drotationkeyword not applying to unit cell#276 spglibtomoyo#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_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
d1d51b4 - RDF plotting hide legend for single structure
dc8a1a2 - fix confusion_matrix() mismatch of false-positive/negative counts and heatmap color
ae5b629 contrast_ratio()inpymatviz/utils/plotting.pyto calculate color contrast according to WCAG 2.0b7c30cf- 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.mdadd links to source and example code for each plot function65ccb7c- 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
28 January 2025
- Remove hard-coded
gridsizeindensity_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
21 December 2024
- Multi-line
ptable_scatter_plotly#260 - Hetero-nuclear diatomics example with MACE
#259 - Add
ptable_scatter_plotly#258 - Remove
cumulative.pyand associated tests + assets#257 - Support
phonopyTotalDosandBandStructureinphonon_dosandphonon_bandsplots#256 - Add
brillouin_zone_3dplot function#251 - Add element color schemes
alloys#255 - delete pymatviz/classify/curves_matplotlib.py
#254 plotlyROC and precision-recall curves#253- Add
pymatviz.classify.confusion_matrix#252 - Fix
phonon_bandsfor 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
21 November 2024
- [Breaking] Split
utilsinto sub-modules, movetypingfromutilsto root (pmv.typing)#248 phonon_bandsenable custom acoustic/optical bands#249- Split
make_assetsscripts by plot functions#247 ptable_heatmap_splits_plotly#246- Better
ptable_hists_plotlydefaults#244 - Add
ptable_hists_plotly#243 - Enhance warning message for default return type change of
ptable_heatmap#240 - add @stylistic/eslint-plugin to fix eslint commit hook (closes #197)
#197 - add coordination_nums_in_structure in pymatviz/coordination/helpers.py
bd54679 - ptable_hists_plotly 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
3 November 2024
- Split
coordination.pymodule intoplotly.pyandhelpers.py#239 - Fix
ptable_heatmap_ratiofollowing change of defaultcount_elementsfill_valueto 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
18 October 2024
- fix ImportError: cannot import pymatgen.symmetry.analyzer.SymmetryUndeterminedError
298c49a
17 October 2024
- Fix
/apidocs by migrating toremark/rehype#237 - Add
coordination_vs_cutoff_lineplot function#236 - Reduce duplicate in dependency declare
#231 - Coordination number histograms
#235 - Add
full_rdf#234 - Experimental: add
show_bonds: bool | NearNeighbors = Falsetostructure_(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
7 October 2024
- use
pytest-splitin 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_annotationfunctionality 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_plotlyallow 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_2dtopymatviz/structure_viz.py#213 - Fix
xrd_patternnot allowingannotate_peaks=0to disable peak annotation#212 - Fix
calculate_rdfnot accounting for periodic boundaries#211 - Support
list/dictof structures inelement_pair_rdfs#206 - Add kwarg
use_tooltips: bool = Truetodf_to_html(prevdf_to_html_table)#205 - Exclude
testsfrom source distribution, and drop python2 tag for wheel#202 element_pair_rdfsplots radial distribution functions (RDFs) for element pairs in a structure#203- Add
IS_IPYTHONglobal#198 - ruff fixes
#196 - breaking: rename <xyz>_kwds -> <xyz>_kwargs for consistency
24261ca
1 September 2024
18 August 2024
- Self-import refactor
#194 - Fix
svgoworkflow for ptable scatter plots#187 density_scatteradd kwargfacet_col: str | None = None#193bin_df_colsleave input df unchanged#192- Re-export all submodules/subpackages from
pymatviz.__init__.py#191 - fix missing jinja2 dep at import time
fb6c9df
31 July 2024
density_scatterQoL 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
18 July 2024
- Fix ptable scatter examples in homepage
#180 - Add
pymatviz.io.df_to_svg#179 - Better default
ptable_heatmap_plotlytooltips#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
7 July 2024
- Fix
ptable_heatmap_plotlyforlog=True#174 - Fix missing keys
Te+NdinELEM_COLORS_VESTAand support it inplot_structure_2d#173 - Fix
log_densityindensity_scatter#172
4 July 2024
- Split
powerupsmodule bybackend:matplotlib/plotly/both#171 - Fix
count_elementsfor series ofComposition#170 - Fix and test
ptable_heatmaptext color logic#169 plot_xrd_patternacceptDiffractionPattern | Structureas input#168- Add
plot_xrd_pattern()for creating interactive XRD patterns with plotly#167 - Fix
density_scattermetric annotation#166 - Add
toggle_log_linear_y_axispowerup#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
21 June 2024
- Fix
ruffNPY002#162 density_scatter()#161- Add
pymatviz.histogram.plot_histogram#159 - Fix
ptable_heatmap_ratiolegend#158 ptable_scattersallow 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
30 May 2024
- Fix
PTableProjector.hide_f_blockproperty#154 - Handle missing value (NaN) and infinity for ptable data
#152 - [Enhancement/Breaking] Refactor
ptable_hists#149 - Add keyword
log: bool = Falsetospacegroup_histto log scale y-axis#148 - MatPES EDA script
#147 - Fix
ptable_heatmap_splitsTypeErrors#146 - Add
mlff_phonons.ipynbexample 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
11 May 2024
- Add
pymatviz/enums.pyfor SSOT on dataframe column and dict key names#143 - Add keyword
hide_f_block: bool = None(La and Ac series) toptableplotters#140 - Remove text background and fix z-order in
structure_viz#139 - Refactor
ptableplotters and addptable_heatmapwith diagonally-split tiles#131 - Migrate to flat
eslintconfig file#137 - Copy color options for element types from
ptable_plotstoptable_hists#129 - MACE-MP pair repulsion curves
#127 - Add
validate_figdecorator utility#126 add_best_fit_line()power-up#125plot_phonon_bands()add kwargsbranch_mode: "union" | "intersection" = "union"andbranches: 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
11 February 2024
- Breaking: rename custom plotly template
pymatviz_(black->dark)#123 - Add ptable_scatter
#122 - Minor format tweaks
#120 - Add
pytestfixturesdf_(float|mixed)to replace deletedpd._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 = Truetoptable_heatmap_plotly()andlast_peak_anno: strtoplot_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
15 December 2023
- Add
plot_band_structurein newpymatviz/bandstructure.pymodule#112 - Add
hist_kwdsarg toptable_histsto customize histograms#111 - Define custom
pymatvizplotly templates#110 - Support matplotlib
AxesandFigureinadd_identity_line#109 - Tweaks
#108 - Add function
ptable_hists#100 ptable_heatmap_plotlysupport 1s, 0s and negative values withlog=True#107ptable_heatmapadd keywordscbar_rangeandcbar_kwargs#105- Add class
TqdmDownload#104 - Breaking: rename
get_crystal_systocrystal_sys_from_spg_num#103 - Support semi-log + log-log plots in
add_identity_line#102 plot_structure_2dadd specialsite_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
4 November 2023
- Add
styled_html_tag()inutils.py#99 - Add
si_fmt()for formatting large numbers in human-readable format#98
30 October 2023
- Fix and rename
df_to_(svelte->html)_table#97 - Add keyword
default_styles: bool = Truetodf_to_pdf#96
22 October 2023
- Periodic table UX improvements
#95 annotate_barsadd keywordadjust_test_pos: bool = False#94- Add
df_to_svelte_table#93 - fix invalid count_mode ValueError err msg
ae77997
9 October 2023
- Bump minimum Python version to 3.9
#92 - Split
pymatviz/io.pyout frompymatviz/utils.pyand adddf_to_pdf()export function#91 - Add KDE support to
bin_df_colsutility function#90 - Add
patch_dict()utility#88 - Breaking: rename
ptable_heatmapandannotate_metricsfloat precision kwargs tofmt#87 - Rename
ptable_heatmap(_plotly)1st arg:elem_values->values#86
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 ruffenable 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_plotly kwarg label_map: dict[str, str] | False | None = None
ef40171 - migrate site to eslint-plugin-svelte
91d7909
29 April 2023
- Per-module doc pages
#77 - Refactor
make_docs.py#76 - DRY workflows
#74 - More flexible
annotate_metricsutil#73
21 March 2023
- Add kwarg
axis: bool | str = "off"toplot_structure_2d()#72 - Add
ptable_heatmapcbar_precisionkwarg#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
21 February 2023
- Pyproject
#69
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
13 January 2023
- pre-commit autoupdate
#65 - Deploy demo site to GitHub pages
#64 - Configure
devcontainerfor 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
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
21 September 2022
- Support log-scaled heat maps in
ptable_heatmap_plotly()#53 - Improve tests for
parity.pyandrelevance.py#51 - Fix
plot_structure_2d()show_bondsfor 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_plotly_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}.py1a87845 - merge
pymatviz/{quantile,ranking}.pyinto new pymatviz/uncertainty.pyc4e0872 - add examples/mprester_ptable.ipynb
04bf077 - cleaner plt.Axes and go.Figure imports
d21e6b4 - add JupyterDash example to
mprester_ptable.ipynbc4381d3 - remove save_reference_img() from conftest.py
73fd600 - rename
cum_{res,err}tocumulative_{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
9 July 2022
- Add kwarg
show_bondstoplot_structure_2d()#41 - Add kwarg
exclude_elements: Sequence[str]toptable_heatmap()#40 - fix broken readme image ![matbench-phonons-structures-2d]
17742d1 - fix flaky CI error from matminer load_dataset()
0c0c043 - fix plot_structure_2d() for pymatgen structures with oxidation states
b61f4c0 - plotly add_identity_line() use fig.full_figure_for_development() to get x/y-range
8ddf049 - move codespell and pydocstyle commit hook args to setup.cfg
7338173 - [pre-commit.ci] pre-commit autoupdate
a0b5195
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
16 May 2022
- Improve
ptable_heatmap_plotly()colorscalekwarg#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
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 (matplotlib/matplotlib#22576)
e5599a6 - compress new SVG assets
fe88271
1 March 2022
- Rename package to pymatviz (formerly ml-matrics)
#23
28 February 2022
- Add
plot_structure_2d()in new moduleml_matrics/struct_vis.py#20 git mv data/{mp-n_elements<2,mp-elements}.csv(closes #19)#19- support atomic numbers in count_elements(), only element symbols before, add kwarg text_color in ptable_heatmap
ada57cc - add kwargs
{pre,suf}fixinadd_mae_r2_box(), usepipcache in**publish.yml**6f64c3b - better handling of atomic numbers in count_elements() when outside range [1, 118]
e46b2c4 - python-requires>=3.8
e0560af
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 caching613706c - drop py3.7 support, update pre-commit hooks
93c3eeb - gha test.yml add pytest-cov
16c92ab - readme remove asset compression note, rename scripts
41d5b6c
26 November 2021
- add ptable_heatmap_plotly() (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_plotly, delete unused softmax + one_hot utils
3e931f2
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
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
14 October 2021
- add typing_extensions as py37 dep and dynamically import Literal
e69face - add codespell pre-commit hook + fix typos
58bfa75
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
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
26 August 2021
- remove ml_matrics.utils.add_identity, use plt.axline instead https://git.io/JERaj
d30a29f
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
3 July 2021
- fully type annotate all functions and fix mypy errors
b5729e3
2 July 2021
- fix ptable_elemental_prevalence cbar_max kwarg
9c92e7c
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
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
10 April 2021
- ptable_elemental_prevalence add cbar_max kwarg
829f762
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
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
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