|
1 | 1 | # %%
|
2 | 2 | import os
|
3 | 3 |
|
| 4 | +import numpy as np |
4 | 5 | import pandas as pd
|
5 | 6 | from pymatviz import count_elements, ptable_heatmap_plotly
|
6 | 7 | from pymatviz.utils import save_fig
|
|
16 | 17 |
|
17 | 18 | module_dir = os.path.dirname(__file__)
|
18 | 19 | print(f"{pio.templates.default=}")
|
| 20 | +about_data_page = f"{ROOT}/site/src/routes/about-the-test-set" |
19 | 21 |
|
20 | 22 |
|
21 | 23 | # %%
|
22 | 24 | wbm_elem_counts = count_elements(df_wbm.formula).astype(int)
|
23 | 25 |
|
24 |
| -out_elem_counts = f"{ROOT}/site/src/routes/about-the-test-set/wbm-element-counts.json" |
25 |
| -# wbm_elem_counts.to_json(out_elem_counts) |
| 26 | +# wbm_elem_counts.to_json(f"{about_data_page}/wbm-element-counts.json") |
26 | 27 |
|
27 | 28 |
|
28 | 29 | # %%
|
|
46 | 47 |
|
47 | 48 | # %%
|
48 | 49 | wbm_fig.write_image(f"{module_dir}/figs/wbm-elements.svg", width=1000, height=500)
|
49 |
| -save_fig(wbm_fig, f"{FIGS}/{today}-wbm-elements.svelte") |
| 50 | +# save_fig(wbm_fig, f"{FIGS}/wbm-elements.svelte") |
50 | 51 |
|
51 | 52 |
|
52 | 53 | # %% load MP training set
|
53 | 54 | df = pd.read_json(f"{module_dir}/../mp/2022-08-13-mp-energies.json.gz")
|
54 | 55 | mp_elem_counts = count_elements(df.formula_pretty).astype(int)
|
55 | 56 |
|
56 |
| -# mp_elem_counts.to_json( |
57 |
| -# f"{ROOT}/site/src/routes/about-the-test-set/{today}-mp-element-counts.json" |
58 |
| -# ) |
59 |
| -mp_elem_counts.describe() |
| 57 | +# mp_elem_counts.to_json(f"{about_data_page}/mp-element-counts.json") |
60 | 58 |
|
61 | 59 |
|
62 | 60 | # %%
|
|
80 | 78 |
|
81 | 79 | # %%
|
82 | 80 | mp_fig.write_image(f"{module_dir}/figs/{today}-mp-elements.svg", width=1000, height=500)
|
83 |
| -# save_fig(mp_fig, f"{FIGS}/{today}-mp-elements.svelte") |
| 81 | +# save_fig(mp_fig, f"{FIGS}/mp-elements.svelte") |
84 | 82 |
|
85 | 83 |
|
86 | 84 | # %% histogram of energy above MP convex hull for WBM
|
87 | 85 | col = "e_above_hull_mp2020_corrected_ppd_mp"
|
88 | 86 | # col = "e_form_per_atom_mp2020_corrected"
|
89 | 87 | mean, std = df_wbm[col].mean(), df_wbm[col].std()
|
90 | 88 |
|
91 |
| -fig = df_wbm[col].hist( |
92 |
| - bins=100, |
93 |
| - backend="plotly", |
94 |
| - range_x=[mean - 2 * std, mean + 2 * std], |
95 |
| - template="plotly_dark", |
96 |
| -) |
| 89 | +range_x = (mean - 2 * std, mean + 2 * std) |
| 90 | +counts, bins = np.histogram(df_wbm[col], bins=150, range=range_x) |
| 91 | +x_label = "WBM energy above MP convex hull (eV/atom)" |
| 92 | +df_hist = pd.DataFrame([counts, bins], index=["count", x_label]).T |
| 93 | + |
| 94 | +fig = df_hist.plot.area(x=x_label, y="count", backend="plotly", range_x=range_x) |
97 | 95 |
|
98 | 96 | if col.startswith("e_above_hull"):
|
99 | 97 | n_stable = sum(df_wbm[col] <= 0)
|
|
108 | 106 | )
|
109 | 107 | fig.update_layout(title=dict(text=title, x=0.5, y=0.95))
|
110 | 108 |
|
111 |
| -fig.update_layout(showlegend=False, paper_bgcolor="rgba(0,0,0,0)") |
112 |
| -fig.update_xaxes(title="WBM energy above MP convex hull (eV/atom)") |
| 109 | +fig.update_layout(showlegend=False) |
113 | 110 |
|
114 |
| -for x_pos, label in zip( |
115 |
| - [mean, mean + std, mean - std], |
116 |
| - [f"{mean = :.2f}", f"{mean + std = :.2f}", f"{mean - std = :.2f}"], |
| 111 | +for x_pos, label in ( |
| 112 | + (mean, f"{mean = :.2f}"), |
| 113 | + (mean - std, f"{mean - std = :.2f}"), |
| 114 | + (mean + std, f"{mean + std = :.2f}"), |
117 | 115 | ):
|
118 |
| - anno = dict(text=label, yshift=-10, xshift=5) |
| 116 | + anno = dict(text=label, yshift=-10, xshift=-5, xanchor="right") |
119 | 117 | fig.add_vline(x=x_pos, line=dict(width=1, dash="dash"), annotation=anno)
|
120 | 118 |
|
121 | 119 | fig.show()
|
122 | 120 |
|
123 |
| - |
124 |
| -# subsample x |
125 |
| -for trace in fig.data: |
126 |
| - trace.x = trace.x[::8] |
127 |
| - |
128 |
| -save_fig(fig, f"{FIGS}/{today}-wbm-each-hist.svelte") |
129 |
| -save_fig(fig, f"./figs/{today}-wbm-each-hist.svg", width=1000, height=500) |
| 121 | +save_fig(fig, f"{FIGS}/wbm-each-hist.svelte") |
| 122 | +save_fig(fig, "./figs/wbm-each-hist.svg", width=1000, height=500) |
130 | 123 |
|
131 | 124 |
|
132 | 125 | # %%
|
|
158 | 151 |
|
159 | 152 | fig.show()
|
160 | 153 |
|
161 |
| -save_fig(fig, f"{FIGS}/{today}-mp-elemental-ref-energies.svelte") |
| 154 | +save_fig(fig, f"{FIGS}/mp-elemental-ref-energies.svelte") |
0 commit comments