Awesome
<h1 align="center"> <img src="https://github.com/janosh/pymatviz/raw/main/site/static/favicon.svg" alt="Logo" height="60px"> <br class="hide-in-docs"> pymatviz </h1> <h4 align="center" class="toc-exclude">A toolkit for visualizations in materials informatics.
</h4> <slot name="how-to-cite"></slot>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 | ||
matbench_dielectric_eda.ipynb | ||
mp_bimodal_e_form.ipynb | ||
matbench_perovskites_eda.ipynb | ||
mprester_ptable.ipynb |
Periodic Table
See pymatviz/ptable/ptable_matplotlib.py
and pymatviz/ptable/ptable_plotly.py
. matplotlib
supports heatmaps, heatmap ratios, heatmap splits (multiple values per element), histograms, scatter plots and line plots. plotly
currently only supports heatmaps (PRs to port over other matplotlib
ptable
variants to plotly
are very welcome!). The plotly
heatmap supports displaying additional data on hover or full interactivity through Dash.
Phonons
See examples/mlff_phonons.ipynb
for usage example.
phonon_bands(bands_dict) | phonon_dos(doses_dict) |
---|---|
phonon_bands_and_dos(bands_dict, doses_dict) | phonon_bands_and_dos(single_bands, single_dos) |
Dash app using ptable_heatmap_plotly()
See examples/mprester_ptable.ipynb
.
Structure
See pymatviz/structure_viz/(mpl|plotly).py
. Currently structure plotting is only supported with matplotlib
in 2d. 3d interactive plots (probably with plotly
) are on the road map.
structure_2d(mp_19017) | structure_2d(mp_12712) |
---|---|
structure_2d_plotly(six_structs) | structure_3d_plotly(six_structs) |
X-Ray Diffraction
See pymatviz/xrd.py
.
xrd_pattern(pattern) | xrd_pattern({key1: patt1, key2: patt2}) |
---|---|
xrd_pattern(struct_dict, stack="horizontal") | xrd_pattern(struct_dict, stack="vertical", title="Custom Title") |
Radial Distribution Functions
rdf_plot(rdf) | rdf_plot(rdf, rdf2) |
---|---|
Coordination
See pymatviz/coordination/plotly.py
.
coordination_hist(struct_dict) | coordination_hist(struct_dict, by_element=True) |
---|---|
coordination_vs_cutoff_line(struct_dict, strategy=None) | coordination_vs_cutoff_line(struct_dict, strategy=None) |
Sunburst
See pymatviz/sunburst.py
.
spacegroup_sunburst([65, 134, 225, ...]) | spacegroup_sunburst(["C2/m", "P-43m", "Fm-3m", ...]) |
---|---|
Rainclouds
rainclouds(two_key_dict) | rainclouds(three_key_dict) |
---|---|
Sankey
See pymatviz/sankey.py
.
sankey_from_2_df_cols(df_perovskites) | sankey_from_2_df_cols(df_space_groups) |
---|---|
Histograms
Scatter Plots
See pymatviz/scatter.py
.
Uncertainty
qq_gaussian(y_true, y_pred, y_std) | qq_gaussian(y_true, y_pred, y_std: dict) |
---|---|
error_decay_with_uncert(y_true, y_pred, y_std) | error_decay_with_uncert(y_true, y_pred, y_std: dict) |
Cumulative Metrics
cumulative_error(preds, targets) | cumulative_residual(preds, targets) |
---|---|
Classification
roc_curve(targets, proba_pos) | precision_recall_curve(targets, proba_pos) |
---|---|
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
}