Skip to content

Commit 6930690

Browse files
committed
fix(draw_figures): Merge per-figure defaults into plot specs (temporary)
_draw_single_figure() now reads fig_spec['defaults'] and merges into cascade: top-level < fig_defaults < plot_spec. Also adds layout=(nrows, ncols) tuple support. Temporary fix — proper solution is to delegate subplot loop to dfdraw's _draw_batch_groups and keep only data caching in ADF. See dfdraw team discussion for architectural simplification.
1 parent bb92d0c commit 6930690

1 file changed

Lines changed: 14 additions & 4 deletions

File tree

UTILS/dfextensions/AliasDataFrame/AliasDataFrame.py

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10757,8 +10757,18 @@ def _draw_single_figure(
1075710757
from dfextensions.dfdraw import DFDraw
1075810758

1075910759
plots = fig_spec.get('plots', [])
10760-
ncols = fig_spec.get('ncols', 2)
10761-
nrows = (len(plots) + ncols - 1) // ncols
10760+
10761+
# Layout: support explicit (nrows, ncols) or just ncols
10762+
layout = fig_spec.get('layout')
10763+
if layout:
10764+
nrows, ncols = layout
10765+
else:
10766+
ncols = fig_spec.get('ncols', 2)
10767+
nrows = (len(plots) + ncols - 1) // ncols
10768+
10769+
# Merge per-figure defaults into cascade: top-level < fig_defaults < plot_spec
10770+
fig_defaults = fig_spec.get('defaults', {})
10771+
effective_defaults = {**defaults, **fig_defaults}
1076210772

1076310773
# Calculate figure size
1076410774
figsize = fig_spec.get('figsize')
@@ -10794,8 +10804,8 @@ def _draw_single_figure(
1079410804
if isinstance(plot_spec, str):
1079510805
plot_spec = {'expr': plot_spec}
1079610806

10797-
# Merge with defaults (plot-level overrides defaults)
10798-
merged = {**defaults, **plot_spec}
10807+
# Merge with defaults (plot-level overrides fig-level overrides top-level)
10808+
merged = {**effective_defaults, **plot_spec}
1079910809
expr = merged.pop('expr')
1080010810
plot_type = merged.pop('type', 'auto')
1080110811
title = merged.pop('title', None)

0 commit comments

Comments
 (0)