Skip to content

Commit 8eb916b

Browse files
committed
fix pkg unnecessarily pinning numpy>2
add hover tooltips to Targets and Date Added cols, improve Model Params and Training Set tooltips
1 parent 1ebad52 commit 8eb916b

File tree

4 files changed

+83
-75
lines changed

4 files changed

+83
-75
lines changed

pyproject.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ requires-python = ">=3.11"
2727
dependencies = [
2828
"ase>=3.23",
2929
"matplotlib>=3.9.2",
30-
"numpy>=2",
30+
"numpy>=1.26",
3131
"pandas>=2.2.2",
3232
"plotly>=5.23",
3333
"pymatgen>=2024.8.9",

scripts/model_figs/metrics_tables.py

+21-14
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# %%
22
import itertools
33
import subprocess
4+
from datetime import date
45
from glob import glob
56

67
import numpy as np
@@ -13,7 +14,7 @@
1314

1415
from matbench_discovery import DATA_DIR, PDF_FIGS, ROOT, SCRIPTS, SITE_FIGS
1516
from matbench_discovery.data import DataFiles, df_wbm
16-
from matbench_discovery.enums import MbdKey, Open
17+
from matbench_discovery.enums import MbdKey, Open, Targets
1718
from matbench_discovery.metrics import stable_metrics
1819
from matbench_discovery.models import MODEL_METADATA
1920
from matbench_discovery.preds import df_metrics, df_metrics_10k, df_metrics_uniq_protos
@@ -54,8 +55,18 @@
5455
model_metadata = MODEL_METADATA.get(model_name, {})
5556
model_key = model_metadata.get("model_key", model_name)
5657

57-
df_metrics_uniq_protos.loc[date_added_col, model] = model_metadata.get(
58-
"date_added", ""
58+
date_added = model_metadata.get("date_added", "")
59+
# long format date for tooltip, e.g. Monday, 28 November 2022
60+
title = f"{date.fromisoformat(date_added):%A, %d %B %Y}"
61+
df_metrics_uniq_protos.loc[date_added_col, model] = (
62+
f"<span {title=}>{date_added}</span>"
63+
)
64+
65+
# Update targets column with full label in tooltip
66+
model_targets = model_metadata.get(Key.targets, "")
67+
targets_label = Targets[model_targets].label
68+
df_metrics_uniq_protos.loc[Key.targets.label, model] = (
69+
f'<span title="{targets_label}">{model_targets}</span>'
5970
)
6071

6172
# Add model version as hover tooltip to model name
@@ -103,16 +114,17 @@
103114
else:
104115
tooltip_lines += [f"{title}: {si_fmt(n_materials)} materials"]
105116

106-
title = "Number of materials in training set"
117+
title = f"Number of materials in training set = {n_materials_total:,}"
107118
train_size_str = (
108119
f"<span {title=} data-sort-value={n_materials_total}>"
109120
f"{si_fmt(n_materials_total, fmt='.0f')}</span>"
110121
)
111122

112123
if n_materials_total != n_structs_total:
113124
title = (
114-
"Number of materials in training set&#013;In parenthesis=number of "
115-
"structures, usually from multiple DFT relaxation frames per material"
125+
f"Number of materials in training set = {n_materials_total:,}&#013;In "
126+
f"parenthesis is number of structures = {n_structs_total}, usually "
127+
"from multiple DFT relaxation frames per material"
116128
)
117129
train_size_str = (
118130
f"<span {title=} data-sort-value={n_materials_total}>"
@@ -145,24 +157,19 @@
145157

146158
model_params = model_metadata.get(Key.model_params, 0)
147159
n_estimators = model_metadata.get(Key.n_estimators, -1)
148-
title = "Number of models in ensemble"
160+
title = f"Number of models in ensemble = {n_estimators:,}"
149161
n_estimators_str = (
150162
f" <small {title=}>(N={n_estimators})</small>" if n_estimators > 1 else ""
151163
)
152164

153-
title = "Number of trainable model parameters"
165+
title = f"Number of trainable model parameters = {model_params:,}"
154166
formatted_params = si_fmt(model_params)
155167
df_metrics_uniq_protos.loc[Key.model_params.label.replace("eter", ""), model] = (
156168
f'<span {title=} data-sort-value="{model_params}">{formatted_params}'
157169
f"</span>{n_estimators_str}"
158170
)
159171

160-
for key in (
161-
MbdKey.openness,
162-
Key.train_task,
163-
Key.test_task,
164-
Key.targets,
165-
):
172+
for key in (MbdKey.openness, Key.train_task, Key.test_task):
166173
default = {MbdKey.openness: Open.OSOD}.get(key, pd.NA)
167174
df_metrics_uniq_protos.loc[key.label, model] = model_metadata.get(key, default)
168175

0 commit comments

Comments
 (0)