Skip to content

Latest commit

 

History

History
441 lines (326 loc) · 36.3 KB

changelog.md

File metadata and controls

441 lines (326 loc) · 36.3 KB

Changelog

All notable changes to this project will be documented in this file. Dates are displayed in UTC.

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

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_plotly() 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

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_plotly 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

4 November 2023

  • Add styled_html_tag() in utils.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 = True to df_to_pdf #96

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

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

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_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_metrics util #73

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

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 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

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.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_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}.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

9 July 2022

  • Add kwarg show_bonds to plot_structure_2d() #41
  • Add kwarg exclude_elements: Sequence[str] to ptable_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() 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

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 module ml_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}fix in add_mae_r2_box(), use pip cache 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 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

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

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

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