Skip to content

Commit 19fe1c9

Browse files
DanielYang59pre-commit-ci[bot]janosh
authored
[Breaking] Refactor ptable heatmap plotter (#157)
* comment out heatmap plotter for refactor * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * group args for refactor * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * remove None as default * remove commented out legacy code * fix unsupported default None value for elem_colors * add missing start_angle arg * add heatmap child plotter * remove Callable type from plot_kwargs * set hide_f_block default to "AUTO" * docstring tweak * add values display functionality * add docstring for heatmap plotter * add fences for blocks in docstring * add log scale preprocessor * warning upon illegal log value * tweak docstring * skip ptable heatmap tests * add more comments * add data sum normalizer * merge heat_mode and show_values to show_values_mode * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * change default symbol font to white and bold * make default cbar title font 16 and bold * fix missing % sign in percent mode * rename show_values_mode to values_show_mode * add tile_colors to store and overwrite tile colors * add values f-string formatter * add setting cbar range, need double check overwrite norm * temp save: add tile_size docstring * change border color to grey * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * fix value in percent mode * remove percentage mode from normalizer * fix merge main * remove TODO tag * enable cbar label format in percent mode * WIP: separate label fmt generate as method * WIP: add sci_notation arg * add cbar label sci notation formatter * fix sci notation in fraction mode * add TODO tag for tests to migrate * move get_cbar_label_formatter to utils * turn off useMathText for consistency with values in tile * remove percentage arg * add tests for get_cbar_label_formatter * track examples, would remove before merge * overwrite add_child_plots method * access colors from tile_colors property * tiny docstring correction * remove accidentally committed test file * simplify sci notation of e+0 * SUBOPTIMAL: pass tile_size to subplots figsize * WIP, not working: add f-block vertical offset * fix wrong arg passing * separate HMapPTableProjector * preprocess_ptable_data and downstream funcs now record anomaly * remove TODO tag * overload preprocess_ptable_data type * add overwrite_colors generator and unit test * fix log_scale apply, and return type * docstring tweaks * In process: migration some of the heatmap tests * remove TODO tag * fix mypy errors * migrate most unit tests * migrate most unit tests * add overwrite_colors arg * add PTableData and unit test, not fully finished * add drop_elements method * add unit test for apply method * move PTableData to ptable and relocate unit tests * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * add placeholder wrap for from_formulas method * fix nan replacement when nan and inf coexist * fix log scale apply * fix type errors * simplify missing_strategy arg name to strategy * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * mark tile_size and f-block offset as WIP * add text_colors to unify value/symbol colors and fix inconsistency * fix typo in test and pick_bw_for_contrast allow color as str * NEED CONFIRM: remove test for color consistency * rename text_color to text_colors for consistency * migrate asset maker for ptable-heatmap-atomic-mass * migrate ptable-heatmap-percent * fix colormap in percent mode * fix log scale * uncommit example figures * add back exclude_elem * minor clean up * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * add tests to exclude_elems * add overwrite_anomalies to handle nan/inf and tests * remove finished TODO * make exclude_elements in cline * fix tile color and value when on_emtpy is show * increate title font size * remove cbar range to be consistent with previous setting * WIP: migrate ptable_heatmap_ratio * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * fix arg in other examples * make overwrite_anomalies in line * fix color mapping in log mode * update ratios plot * optimize norm setter * remove excluded elem to avoid metadata pollution and fix text color * fix color mapping in percent/fraction mode * break into submodules * remove debug script * Revert "break into submodules" This reverts commit a43912e. * fix merge main * split ptable projector * add ratio plot legends * fix NaN display in ratio plotter * migrate unit test for ratio plotter * condense tile value, color and text_color generation * WIP: merge tile symbol, color and value plot into add_heatmap_tiles * first working version after tile refactor * fix colorbar format * rename args values_xx to value_xx * add missing docstrings * regenerate asset with new implementation * finish ratio plotter migration * fix wrong import of ptableprojector in unit test * remove HMapPTableProjector into _projectors module * add unit tests for generate_tile_value_colors * fix mypy errors * set NaN default color as lightgrey * add deprecated warning for args * remove inf_color to infty_color for backwards compatibility * add more deprecated args * WIP: migrate matbench_dielectric_eda.ipynb * WIP: migrate mprester_ptable.ipynb * set default on_empty to show and reset normalizer for values not present * fix matbench_dielectric_eda ipynb * ptable_heatmap now filter near zero values internally with a warning * fix value type * migrate mprester_ptable.ipynb * migrate example boltztrap_mp * migrate camd_2022 * set default value_fmt to .0f in log mode to be large-number friendly * fix and migrate ricci_carrier_transport * add debug tag * migrate dielectric * migrate expt_gap * migrate other matbench * simplify count_elements import * fix unit test * remove TODO tag * drop not available structure * add return_type for smoother migration to return figure * reapply value filter for percent mode * revert accidental revert during conflict merge * fix return type in test and add test for return_type * add debug tag * make copy of df * include ax example in asset * remove ptabledata from_formula method * change ptable_matplotlib.py doc str section format # -> --- * rename Literal "AUTO"->"auto" for automatic text color and text format mode * df_ptable.atomic_mass->df_ptable[Key.atomic_mass] * rename HMapPTableProjector->HeatMapPTableProjector * simplify assert isclose(a, b) -> assert a == b * decrease filter_near_zero(tol=1e-4->1e-6) * add isinstance(self.anomalies, dict) to remove need for typing.cast --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Janosh Riebesell <[email protected]>
1 parent 5e42726 commit 19fe1c9

40 files changed

+2656
-1733
lines changed

.pre-commit-config.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ default_install_hook_types: [pre-commit, commit-msg]
88

99
repos:
1010
- repo: https://github.com/astral-sh/ruff-pre-commit
11-
rev: v0.5.3
11+
rev: v0.5.4
1212
hooks:
1313
- id: ruff
1414
args: [--fix]
@@ -17,7 +17,7 @@ repos:
1717
types_or: [python, jupyter]
1818

1919
- repo: https://github.com/pre-commit/mirrors-mypy
20-
rev: v1.10.1
20+
rev: v1.11.0
2121
hooks:
2222
- id: mypy
2323
additional_dependencies: [types-requests]

assets/ptable-heatmap-atomic-mass.svg

Lines changed: 1 addition & 1 deletion
Loading

assets/ptable-heatmap-percent.svg

Lines changed: 1 addition & 1 deletion
Loading

assets/ptable-heatmap-ratio.svg

Lines changed: 1 addition & 1 deletion
Loading

assets/ptable-heatmap.svg

Lines changed: 1 addition & 1 deletion
Loading
Binary file not shown.

examples/dataset_exploration/boltztrap_mp/explore_boltztrap_mp.py

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
import matplotlib.pyplot as plt
3131
from matminer.datasets import load_dataset
3232

33-
from pymatviz import ptable_heatmap
33+
from pymatviz import count_elements, ptable_heatmap
3434
from pymatviz.enums import Key
3535
from pymatviz.io import save_fig
3636

@@ -41,15 +41,20 @@
4141

4242

4343
# %%
44-
ax = ptable_heatmap(df_boltz[Key.formula], log=True)
45-
ax.set(title="Elements in BoltzTraP MP dataset")
46-
save_fig(ax, "boltztrap_mp-ptable-heatmap.pdf")
44+
fig = ptable_heatmap(
45+
count_elements(df_boltz[Key.formula]), log=True, return_type="figure"
46+
)
47+
fig.suptitle("Elements in BoltzTraP MP dataset")
48+
save_fig(fig, "boltztrap_mp-ptable-heatmap.pdf")
4749

4850

4951
# %%
50-
ax = ptable_heatmap(df_boltz.sort_values("pf_n").tail(100)[Key.formula])
51-
ax.set(title="Elements of top 100 n-type powerfactors in BoltzTraP MP dataset")
52-
save_fig(ax, "boltztrap_mp-ptable-heatmap-top-100-nPF.pdf")
52+
fig = ptable_heatmap(
53+
count_elements(df_boltz.sort_values("pf_n").tail(100)[Key.formula]),
54+
return_type="figure",
55+
)
56+
fig.suptitle("Elements of top 100 n-type powerfactors in BoltzTraP MP dataset")
57+
save_fig(fig, "boltztrap_mp-ptable-heatmap-top-100-nPF.pdf")
5358

5459

5560
# %%
Binary file not shown.

examples/dataset_exploration/camd_2022/explore_camd_2022.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,9 @@
4646

4747
# %%
4848
elem_counts = count_elements(df_camd.reduced_formula)
49-
ax = ptable_heatmap(elem_counts, log=True)
50-
ax.set(title="Elements in CAMD 2022 dataset")
51-
save_fig(ax, "camd-2022-ptable-heatmap.pdf")
49+
fig = ptable_heatmap(elem_counts, log=True, return_type="figure")
50+
fig.suptitle("Elements in CAMD 2022 dataset")
51+
save_fig(fig, "camd-2022-ptable-heatmap.pdf")
5252

5353

5454
# %%
Binary file not shown.

examples/dataset_exploration/matbench/dielectric/explore_dielectric.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from tqdm import tqdm
66

77
from pymatviz import (
8+
count_elements,
89
crystal_sys_order,
910
ptable_heatmap,
1011
ptable_heatmap_plotly,
@@ -51,9 +52,11 @@
5152

5253

5354
# %%
54-
ax = ptable_heatmap(df_diel[Key.formula], log=True)
55-
ax.set(title="Elemental prevalence in the Matbench dielectric dataset")
56-
save_fig(ax, "dielectric-ptable-heatmap.pdf")
55+
fig = ptable_heatmap(
56+
count_elements(df_diel[Key.formula]), log=True, return_type="figure"
57+
)
58+
fig.suptitle("Elemental prevalence in the Matbench dielectric dataset")
59+
save_fig(fig, "dielectric-ptable-heatmap.pdf")
5760

5861

5962
# %%

examples/dataset_exploration/matbench/expt_gap/explore_expt_gap.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from matminer.datasets import load_dataset
66
from pymatgen.core import Composition
77

8-
from pymatviz import ptable_heatmap
8+
from pymatviz import count_elements, ptable_heatmap
99
from pymatviz.enums import Key
1010
from pymatviz.io import save_fig
1111

@@ -56,13 +56,13 @@ def mean_atomic_prop(comp: Composition, prop: str) -> float | None:
5656

5757

5858
# %%
59-
ax = ptable_heatmap(
60-
df_gap.query("~composition.str.contains('Xe')")[Key.composition],
59+
fig = ptable_heatmap(
60+
count_elements(df_gap.query("~composition.str.contains('Xe')")[Key.composition]),
6161
log=True,
62-
text_color="black",
62+
return_type="figure",
6363
)
64-
ax.set(title="Elements in Matbench experimental band gap dataset")
65-
save_fig(ax, "expt-gap-ptable-heatmap.pdf")
64+
fig.suptitle("Elements in Matbench experimental band gap dataset")
65+
save_fig(fig, "expt-gap-ptable-heatmap.pdf")
6666

6767

6868
# %%
Binary file not shown.

examples/dataset_exploration/matbench/jdft2d/explore_jdft2d.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,12 @@
22
from matminer.datasets import load_dataset
33
from tqdm import tqdm
44

5-
from pymatviz import ptable_heatmap, spacegroup_hist, spacegroup_sunburst
5+
from pymatviz import (
6+
count_elements,
7+
ptable_heatmap,
8+
spacegroup_hist,
9+
spacegroup_sunburst,
10+
)
611
from pymatviz.enums import Key
712
from pymatviz.io import save_fig
813

@@ -39,9 +44,9 @@
3944
df_2d[Key.volume] = [x.volume for x in df_2d[Key.structure]]
4045
df_2d[Key.formula] = [x.formula for x in df_2d[Key.structure]]
4146

42-
ax = ptable_heatmap(df_2d[Key.formula], log=True)
43-
ax.set(title="Elemental prevalence in the Matbench Jarvis DFT 2D dataset")
44-
save_fig(ax, "jdft2d-ptable-heatmap.pdf")
47+
fig = ptable_heatmap(count_elements(df_2d[Key.formula]), log=True, return_type="figure")
48+
fig.suptitle("Elemental prevalence in the Matbench Jarvis DFT 2D dataset")
49+
save_fig(fig, "jdft2d-ptable-heatmap.pdf")
4550

4651

4752
# %%
Binary file not shown.

examples/dataset_exploration/matbench/log_g+kvrh/explore_log_g+krvh.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
from tqdm import tqdm
2121

2222
from pymatviz import (
23+
count_elements,
2324
crystal_sys_order,
2425
ptable_heatmap,
2526
spacegroup_hist,
@@ -128,9 +129,11 @@ def has_isolated_atom(crystal: Structure, radius: float = 5) -> bool:
128129
# %%
129130
df_grvh[Key.formula] = df_grvh[Key.structure].map(lambda struct: struct.formula)
130131

131-
ax = ptable_heatmap(df_grvh[Key.formula], log=True)
132-
ax.set(title="Elemental prevalence in the Matbench bulk/shear modulus datasets")
133-
save_fig(ax, "log_gvrh-ptable-heatmap.pdf")
132+
fig = ptable_heatmap(
133+
count_elements(df_grvh[Key.formula]), log=True, return_type="figure"
134+
)
135+
fig.suptitle("Elemental prevalence in the Matbench bulk/shear modulus datasets")
136+
save_fig(fig, "log_gvrh-ptable-heatmap.pdf")
134137

135138

136139
# %%
Binary file not shown.

examples/dataset_exploration/matbench/mp_e_form/explore_mp_e_form.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# %%
22
from matminer.datasets import load_dataset
33

4-
from pymatviz import ptable_heatmap
4+
from pymatviz import count_elements, ptable_heatmap
55
from pymatviz.enums import Key
66
from pymatviz.io import save_fig
77

@@ -31,8 +31,11 @@
3131
# %%
3232
df_e_form[Key.formula] = df_e_form[Key.structure].map(lambda struct: struct.formula)
3333

34-
35-
# %%
36-
ax = ptable_heatmap(df_e_form[Key.formula], log=True)
37-
ax.set(title="Elemental prevalence in the Matbench formation energy dataset")
38-
save_fig(ax, "mp_e_form-ptable-heatmap.pdf")
34+
fig = ptable_heatmap(
35+
count_elements(df_e_form[Key.formula]),
36+
log=True,
37+
value_kwargs={"fontsize": 10},
38+
return_type="figure",
39+
)
40+
fig.suptitle("Elemental prevalence in the Matbench formation energy dataset")
41+
save_fig(fig, "mp_e_form-ptable-heatmap.pdf")
Binary file not shown.

examples/dataset_exploration/matbench/mp_gap/explore_mp_gap.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# %%
22
from matminer.datasets import load_dataset
33

4-
from pymatviz import ptable_heatmap
4+
from pymatviz import count_elements, ptable_heatmap
55
from pymatviz.enums import Key
66
from pymatviz.io import save_fig
77

@@ -32,11 +32,14 @@
3232
df_gap[Key.vol_per_atom] = df_gap[Key.volume] / df_gap[Key.n_sites]
3333
df_gap[Key.formula] = df_gap[Key.structure].map(lambda cryst: cryst.formula)
3434

35-
36-
# %%
37-
ax = ptable_heatmap(df_gap[Key.formula], log=True)
38-
ax.set(title="Elemental prevalence in the Matbench MP band gap dataset")
39-
save_fig(ax, "mp_gap-ptable-heatmap.pdf")
35+
fig = ptable_heatmap(
36+
count_elements(df_gap[Key.formula]),
37+
log=True,
38+
value_kwargs={"fontsize": 10},
39+
return_type="figure",
40+
)
41+
fig.suptitle("Elemental prevalence in the Matbench MP band gap dataset")
42+
save_fig(fig, "mp_gap-ptable-heatmap.pdf")
4043

4144

4245
# %%

examples/dataset_exploration/matbench/perovskites/explore_perovskites.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,12 @@
22
from matminer.datasets import load_dataset
33
from tqdm import tqdm
44

5-
from pymatviz import plot_structure_2d, ptable_heatmap, spacegroup_sunburst
5+
from pymatviz import (
6+
count_elements,
7+
plot_structure_2d,
8+
ptable_heatmap,
9+
spacegroup_sunburst,
10+
)
611
from pymatviz.enums import Key
712
from pymatviz.io import save_fig
813
from pymatviz.powerups import annotate_bars
@@ -50,9 +55,11 @@
5055

5156

5257
# %%
53-
ax = ptable_heatmap(df_perov[Key.formula], log=True)
54-
ax.set(title="Elements in Matbench Perovskites dataset")
55-
save_fig(ax, "perovskites-ptable-heatmap.pdf")
58+
fig = ptable_heatmap(
59+
count_elements(df_perov[Key.formula]), log=True, return_type="figure"
60+
)
61+
fig.suptitle("Elements in Matbench Perovskites dataset")
62+
save_fig(fig, "perovskites-ptable-heatmap.pdf")
5663

5764

5865
# %%
Binary file not shown.

examples/dataset_exploration/matbench/phonons/explore_phonons.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
from matminer.datasets import load_dataset
2020
from tqdm import tqdm
2121

22-
from pymatviz import ptable_heatmap, spacegroup_hist
22+
from pymatviz import count_elements, ptable_heatmap, spacegroup_hist
2323
from pymatviz.enums import Key
2424
from pymatviz.io import save_fig
2525

@@ -42,9 +42,11 @@
4242
df_phonon[Key.formula] = df_phonon[Key.structure].map(lambda cryst: cryst.formula)
4343
df_phonon[Key.volume] = df_phonon[Key.structure].map(lambda cryst: cryst.volume)
4444

45-
ax = ptable_heatmap(df_phonon[Key.formula], log=True)
46-
ax.set(title="Elemental prevalence in the Matbench phonons dataset")
47-
save_fig(ax, "phonons-ptable-heatmap.pdf")
45+
fig = ptable_heatmap(
46+
count_elements(df_phonon[Key.formula]), log=True, return_type="figure"
47+
)
48+
fig.suptitle("Elemental prevalence in the Matbench phonons dataset")
49+
save_fig(fig, "phonons-ptable-heatmap.pdf")
4850

4951

5052
# %%
Binary file not shown.

examples/dataset_exploration/matbench/steels/explore_steels.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
# %%
1111
from matminer.datasets import load_dataset
1212

13-
from pymatviz import ptable_heatmap
13+
from pymatviz import count_elements, ptable_heatmap
1414
from pymatviz.enums import Key
1515
from pymatviz.io import save_fig
1616

@@ -25,6 +25,8 @@
2525

2626

2727
# %%
28-
ax = ptable_heatmap(df_steels[Key.composition], log=True)
29-
ax.set(title="Elemental prevalence in the Matbench steels dataset")
30-
save_fig(ax, "steels-ptable-heatmap.pdf")
28+
fig = ptable_heatmap(
29+
count_elements(df_steels[Key.composition]), log=True, return_type="figure"
30+
)
31+
fig.suptitle("Elemental prevalence in the Matbench steels dataset")
32+
save_fig(fig, "steels-ptable-heatmap.pdf")

examples/dataset_exploration/matpes/eda.py

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -108,16 +108,16 @@
108108
r2scan_elem_counts = locals().get("r2scan_elem_counts")
109109
if r2scan_elem_counts is None:
110110
r2scan_elem_counts = count_elements(df_r2scan[Key.formula])
111-
ax = ptable_heatmap(r2scan_elem_counts)
111+
fig = ptable_heatmap(r2scan_elem_counts, return_type="figure")
112112

113-
save_fig(ax, "r2scan-element-counts-ptable.pdf")
113+
save_fig(fig, "r2scan-element-counts-ptable.pdf")
114114

115115

116116
# %%
117117
pbe_elem_counts = locals().get("pbe_elem_counts")
118118
if pbe_elem_counts is None:
119119
pbe_elem_counts = count_elements(df_pbe[Key.formula])
120-
ax = ptable_heatmap(pbe_elem_counts)
120+
fig = ptable_heatmap(pbe_elem_counts, return_type="figure")
121121

122122

123123
# %% calculate per element energies
@@ -158,14 +158,15 @@
158158

159159

160160
# %% which elements have a higher share of missing r2scan data
161-
ax = ptable_heatmap(
161+
fig = ptable_heatmap(
162162
(pbe_elem_counts - r2scan_elem_counts) / pbe_elem_counts,
163-
fmt=".1%",
164-
cbar_fmt=".0%",
163+
value_fmt=".1%",
164+
cbar_label_fmt=".0%",
165165
cbar_title="Fraction of missing PBE calcs missing r2SCAN",
166+
return_type="figure",
166167
)
167168

168-
save_fig(ax, "ptable-has-pbe-but-no-r2scan.pdf")
169+
save_fig(fig, "ptable-has-pbe-but-no-r2scan.pdf")
169170

170171

171172
# %% per-elem mean abs magmoms
@@ -174,10 +175,13 @@
174175
for struct in df_r2scan[Key.structure]
175176
).mean()
176177

177-
ax = ptable_heatmap(
178-
df_per_elem_magmoms, cbar_title=r"Mean |magmom| ($\mu_B$)", fmt=".1f"
178+
fig = ptable_heatmap(
179+
df_per_elem_magmoms,
180+
cbar_title=r"Mean |magmom| ($\mu_B$)",
181+
value_fmt=".1f",
182+
return_type="figure",
179183
)
180-
save_fig(ax, "magmoms-ptable.pdf")
184+
save_fig(fig, "magmoms-ptable.pdf")
181185

182186

183187
# %% spacegroup distribution

examples/dataset_exploration/ricci_carrier_transport/explore_carrier_transport.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,24 +23,27 @@
2323
from matminer.datasets import load_dataset
2424
from tqdm import tqdm
2525

26-
from pymatviz import ptable_heatmap, spacegroup_hist
26+
from pymatviz import count_elements, ptable_heatmap, spacegroup_hist
2727
from pymatviz.enums import Key
2828
from pymatviz.io import save_fig
2929

3030

3131
# %%
3232
df_carrier = load_dataset("ricci_boltztrap_mp_tabular")
33+
df_carrier = df_carrier.dropna(subset=Key.structure)
3334

34-
# getting space group symbols and numbers takes about 2 min
35+
# Getting space group symbols and numbers (take about 2 min)
3536
df_carrier[[Key.spg_symbol, Key.spg_num]] = [
3637
struct.get_space_group_info() for struct in tqdm(df_carrier[Key.structure])
3738
]
3839

3940

4041
# %%
41-
ax = ptable_heatmap(df_carrier.pretty_formula.dropna(), log=True)
42-
ax.set(title="Elemental prevalence in the Ricci Carrier Transport dataset")
43-
save_fig(ax, "carrier-transport-ptable-heatmap.pdf")
42+
fig = ptable_heatmap(
43+
count_elements(df_carrier.pretty_formula.dropna()), log=True, return_type="figure"
44+
)
45+
fig.suptitle("Elemental prevalence in the Ricci Carrier Transport dataset")
46+
save_fig(fig, "carrier-transport-ptable-heatmap.pdf")
4447

4548

4649
# %%

0 commit comments

Comments
 (0)