pymatviz
pymatviz copied to clipboard
A toolkit for visualizations in materials informatics.
pymatviz
A toolkit for visualizations in materials informatics.
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! 🙏
matbench_dielectric_eda.ipynb | ||
mp_bimodal_e_form.ipynb | ||
matbench_perovskites_eda.ipynb | ||
mprester_ptable.ipynb |
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_plotly(atomic_masses) |
ptable_heatmap_plotly(compositions, log=True) |
ptable_hists(data, colormap="coolwarm" |
ptable_scatters(data, colormap="coolwarm" |
Phonons
See pymatviz/phonons.py
.
plot_phonon_bands(bands_dict) |
plot_phonon_dos(doses_dict) |
---|---|
plot_phonon_bands_and_dos(bands_dict, doses_dict) |
|
Dash app using ptable_heatmap_plotly()
See examples/mprester_ptable.ipynb
.
Sunburst
See pymatviz/sunburst.py
.
spacegroup_sunburst([65, 134, 225, ...]) |
spacegroup_sunburst(["C2/m", "P-43m", "Fm-3m", ...]) |
---|---|
Sankey
See pymatviz/sankey.py
.
sankey_from_2_df_cols(df_perovskites) |
sankey_from_2_df_cols(df_rand_ints) |
---|---|
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) |
---|---|
Histograms
See pymatviz/histograms.py
.
spacegroup_hist([65, 134, 225, ...], backend="matplotlib") |
spacegroup_hist(["C2/m", "P-43m", "Fm-3m", ...], backend="matplotlib") |
---|---|
spacegroup_hist([65, 134, 225, ...], backend="plotly") |
spacegroup_hist(["C2/m", "P-43m", "Fm-3m", ...], backend="plotly") |
elements_hist(compositions, log=True, bar_values='count') |
|
Parity Plots
See pymatviz/parity.py
.
density_scatter(xs, ys, ...) |
density_scatter_with_hist(xs, ys, ...) |
---|---|
density_hexbin(xs, ys, ...) |
density_hexbin_with_hist(xs, ys, ...) |
scatter_with_err_bar(xs, ys, yerr, ...) |
residual_vs_actual(y_true, y_pred, ...) |
Uncertainty
See pymatviz/uncertainty.py
.
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
See pymatviz/cumulative.py
.
cumulative_error(preds, targets) |
cumulative_residual(preds, targets) |
---|---|
Classification
See pymatviz/relevance.py
.
roc_curve(targets, proba_pos) |
precision_recall_curve(targets, proba_pos) |
---|---|
Correlation
See pymatviz/correlation.py
.
marchenko_pastur(corr_mat, gamma=ncols/nrows) |
marchenko_pastur(corr_mat_significant_eval, gamma=ncols/nrows) |
---|---|
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 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.1}, % replace with the version you use
}