跳转到主要内容

材料信息学可视化工具包

项目描述

Logo
pymatviz

材料信息学可视化工具包。

Tests This project supports Python 3.10+ PyPI PyPI Downloads Zenodo

如果您在研究中使用了pymatviz,请查看引用方法

安装

pip install pymatviz

API文档

请参阅/api页面。

用法

请参阅examples/下的Jupyter笔记本,了解如何使用pymatviz。欢迎提交带有额外示例的PR!🙏

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

元素周期表

请参阅pymatviz/ptable/ptable_matplotlib.pypymatviz/ptable/ptable_plotly.pymatplotlib支持热图、热图比率、热图分割(每个元素多个值)、直方图、散点图和线图。plotly目前仅支持热图(欢迎PR将其他matplotlib ptable变体移植到plotly!)。plotly热图支持在悬停时显示额外数据或通过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_scatters(data, colormap="coolwarm") ptable_scatters(data, colormap="coolwarm")
ptable-scatters-parity ptable-scatters-parabola
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

声子

请参阅使用示例 examples/mlff_phonons.ipynb

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

使用ptable_heatmap_plotly()的Dash应用程序

请参阅 examples/mprester_ptable.ipynb

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

太阳爆发图

请参阅 pymatviz/sunburst.py

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

桑基图

请参阅 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

结构

请参阅 pymatviz/structure_viz.py。目前,结构绘制只支持在2维中使用matplotlib。3维交互式绘图(可能使用plotly)正在路线图中。

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

直方图

请参阅 pymatviz/histogram.py

spacegroup_bar([65, 134, 225, ...], backend="matplotlib") spacegroup_bar(["C2/m", "P-43m", "Fm-3m", ...], backend="matplotlib")
spg-num-hist-matplotlib spg-symbol-hist-matplotlib
spacegroup_bar([65, 134, 225, ...], backend="plotly") spacegroup_bar(["C2/m", "P-43m", "Fm-3m", ...], backend="plotly")
spg-num-hist-plotly spg-symbol-hist-plotly
elements_hist(compositions, log=True, bar_values='count') plot_histogram({'key1': values1, 'key2': values2})
elements-hist plot-histogram-ecdf

散点图

请参阅 pymatviz/scatter.py

density_scatter_plotly(df, x=x_col, y=y_col, ...) density_scatter_plotly(df, x=x_col, y=y_col, ...)
density-scatter-plotly density-scatter-plotly-blobs
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

X射线衍射

请参阅 pymatviz/xrd.py

plot_xrd_pattern(pattern) plot_xrd_pattern({key1: patt1, key2: patt2})
xrd-pattern xrd-pattern-multiple

不确定性

请参阅 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

累积度量

请参阅 pymatviz/cumulative.py

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

分类

请参阅 pymatviz/relevance.py

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

相关性

请参阅 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

如何引用 pymatviz

请参阅 citation.cff 或使用以下BibTeX条目引用 Zenodo记录

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

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页