Skip to main content

A toolkit for visualizations in materials informatics

Project description

Logo
pymatviz

A toolkit for visualizations in materials informatics.

Tests This project supports Python 3.9+ PyPI PyPI Downloads Zenodo

If you use pymatviz in your research, see how to cite.

Installation

pip install pymatviz

API Docs

See the /api page.

Usage

See the Jupyter notebooks under examples/ for how to use pymatviz. PRs with additional examples are welcome! 🙏

mlff_phonons.ipynb Open in Google Colab Launch Codespace
matbench_dielectric_eda.ipynb Open in Google Colab Launch Codespace
mp_bimodal_e_form.ipynb Open in Google Colab Launch Codespace
matbench_perovskites_eda.ipynb Open in Google Colab Launch Codespace
mprester_ptable.ipynb Open in Google Colab Launch Codespace

Periodic Table

See pymatviz/ptable.py. Heatmaps of the periodic table can be plotted both with matplotlib and plotly. plotly supports displaying additional data on hover or full interactivity through Dash.

ptable_heatmap(compositions, log=True) ptable_heatmap_ratio(comps_a, comps_b)
ptable-heatmap ptable-heatmap-ratio
ptable_heatmap_plotly(atomic_masses) ptable_heatmap_plotly(compositions, log=True)
ptable-heatmap-plotly-more-hover-data ptable-heatmap-plotly-log
ptable_hists(data, colormap="coolwarm") ptable_lines(data)
ptable-hists ptable-lines
ptable_heatmap_splits(2_vals_per_elem, colormap="coolwarm", start_angle=135) ptable_heatmap_splits(3_vals_per_elem, colormap="coolwarm", start_angle=90)
ptable-heatmap-splits-2 ptable-heatmap-splits-3

Phonons

See examples/mlff_phonons.ipynb for usage example.

plot_phonon_bands(bands_dict) plot_phonon_dos(doses_dict)
phonon-bands phonon-dos
plot_phonon_bands_and_dos(bands_dict, doses_dict) plot_phonon_bands_and_dos(single_bands, single_dos)
phonon-bands-and-dos-mp-2758 phonon-bands-and-dos-mp-23907

Dash app using ptable_heatmap_plotly()

See examples/mprester_ptable.ipynb.

https://user-images.githubusercontent.com/30958850/181644052-b330f0a2-70fc-451c-8230-20d45d3af72f.mp4

Sunburst

See pymatviz/sunburst.py.

spacegroup_sunburst([65, 134, 225, ...]) spacegroup_sunburst(["C2/m", "P-43m", "Fm-3m", ...])
spg-num-sunburst spg-symbol-sunburst

Sankey

See pymatviz/sankey.py.

sankey_from_2_df_cols(df_perovskites) sankey_from_2_df_cols(df_rand_ints)
sankey-spglib-vs-aflow-spacegroups sankey-from-2-df-cols-randints

Structure

See pymatviz/structure_viz.py. Currently structure plotting is only supported with matplotlib in 2d. 3d interactive plots (probably with plotly) are on the road map.

plot_structure_2d(mp_19017) plot_structure_2d(mp_12712)
struct-2d-mp-19017-Li4Mn0.8Fe1.6P4C1.6O16-disordered struct-2d-mp-12712-Hf9Zr9Pd24-disordered

matbench-phonons-structures-2d

Histograms

See pymatviz/histograms.py.

spacegroup_hist([65, 134, 225, ...], backend="matplotlib") spacegroup_hist(["C2/m", "P-43m", "Fm-3m", ...], backend="matplotlib")
spg-num-hist-matplotlib spg-symbol-hist-matplotlib
spacegroup_hist([65, 134, 225, ...], backend="plotly") spacegroup_hist(["C2/m", "P-43m", "Fm-3m", ...], backend="plotly")
spg-num-hist-plotly spg-symbol-hist-plotly
elements_hist(compositions, log=True, bar_values='count')
elements-hist

Parity Plots

See pymatviz/parity.py.

density_scatter(xs, ys, ...) density_scatter_with_hist(xs, ys, ...)
density-scatter density-scatter-with-hist
density_hexbin(xs, ys, ...) density_hexbin_with_hist(xs, ys, ...)
density-hexbin density-hexbin-with-hist
scatter_with_err_bar(xs, ys, yerr, ...) residual_vs_actual(y_true, y_pred, ...)
scatter-with-err-bar residual-vs-actual

Uncertainty

See pymatviz/uncertainty.py.

qq_gaussian(y_true, y_pred, y_std) qq_gaussian(y_true, y_pred, y_std: dict)
normal-prob-plot normal-prob-plot-multiple
error_decay_with_uncert(y_true, y_pred, y_std) error_decay_with_uncert(y_true, y_pred, y_std: dict)
error-decay-with-uncert error-decay-with-uncert-multiple

Cumulative Metrics

See pymatviz/cumulative.py.

cumulative_error(preds, targets) cumulative_residual(preds, targets)
cumulative-error cumulative-residual

Classification

See pymatviz/relevance.py.

roc_curve(targets, proba_pos) precision_recall_curve(targets, proba_pos)
roc-curve precision-recall-curve

Correlation

See pymatviz/correlation.py.

marchenko_pastur(corr_mat, gamma=ncols/nrows) marchenko_pastur(corr_mat_significant_eval, gamma=ncols/nrows)
marchenko-pastur marchenko-pastur-significant-eval

How to cite pymatviz

See citation.cff or cite the Zenodo record using the following BibTeX entry:

@software{riebesell_pymatviz_2022,
  title = {Pymatviz: visualization toolkit for materials informatics},
  author = {Riebesell, Janosh and Yang, Haoyu and Goodall, Rhys and Baird, Sterling G.},
  date = {2022-10-01},
  year = {2022},
  doi = {10.5281/zenodo.7486816},
  url = {https://github.com/janosh/pymatviz},
  note = {10.5281/zenodo.7486816 - https://github.com/janosh/pymatviz},
  urldate = {2023-01-01}, % optional, replace with your date of access
  version = {0.8.2}, % replace with the version you use
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pymatviz-0.8.3.tar.gz (107.8 kB view details)

Uploaded Source

Built Distribution

pymatviz-0.8.3-py2.py3-none-any.whl (84.1 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file pymatviz-0.8.3.tar.gz.

File metadata

  • Download URL: pymatviz-0.8.3.tar.gz
  • Upload date:
  • Size: 107.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for pymatviz-0.8.3.tar.gz
Algorithm Hash digest
SHA256 71bb9ccab3eca53926d68a3616af77f99f146914a3dd40fd38210f62ced7db74
MD5 1268e492df1eb52d03df0485c0aba553
BLAKE2b-256 e707cf261ef6262b10a99dbfd3a9023c444c3c54f820f3ea83b67e23cc7ac0f8

See more details on using hashes here.

File details

Details for the file pymatviz-0.8.3-py2.py3-none-any.whl.

File metadata

  • Download URL: pymatviz-0.8.3-py2.py3-none-any.whl
  • Upload date:
  • Size: 84.1 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for pymatviz-0.8.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 c01f2e7fc7c674a91c129ee3cb8839c6c5fa97f475eea4dfc540aace10efc332
MD5 5e61060ffe6e9192fa60271a78d3ea0f
BLAKE2b-256 b71b8aa09a69c09054e58db9b208459901788670e62fd78a8d4c53d55a646032

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page