Skip to content

Commit 408ceee

Browse files
authored
Merge pull request #254 from PyAutoLabs/feature/fast-plots-tight-layout
feat: add tight_layout wrapper with PYAUTO_FAST_PLOTS env var
2 parents c17a7d3 + dd02a55 commit 408ceee

File tree

8 files changed

+29
-16
lines changed

8 files changed

+29
-16
lines changed

autoarray/dataset/plot/imaging_plots.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import matplotlib.pyplot as plt
44

5-
from autoarray.plot.utils import subplot_save, conf_subplot_figsize
5+
from autoarray.plot.utils import subplot_save, conf_subplot_figsize, tight_layout
66

77

88
def subplot_imaging_dataset(
@@ -139,7 +139,7 @@ def subplot_imaging_dataset(
139139

140140
from autoarray.plot.utils import hide_unused_axes
141141
hide_unused_axes(axes)
142-
plt.tight_layout()
142+
tight_layout()
143143
subplot_save(fig, output_path, output_filename, output_format)
144144

145145

@@ -179,7 +179,7 @@ def subplot_imaging_dataset_list(
179179
plot_array(dataset.data, ax=axes[i][0], title="Data")
180180
plot_array(dataset.noise_map, ax=axes[i][1], title="Noise Map")
181181
plot_array(dataset.signal_to_noise_map, ax=axes[i][2], title="Signal-To-Noise Map")
182-
plt.tight_layout()
182+
tight_layout()
183183
subplot_save(fig, output_path, output_filename, output_format)
184184

185185

autoarray/dataset/plot/interferometer_plots.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from autoarray.plot.array import plot_array
77
from autoarray.plot.grid import plot_grid
88
from autoarray.plot.yx import plot_yx
9-
from autoarray.plot.utils import subplot_save, hide_unused_axes, conf_subplot_figsize
9+
from autoarray.plot.utils import subplot_save, hide_unused_axes, conf_subplot_figsize, tight_layout
1010
from autoarray.structures.grids.irregular_2d import Grid2DIrregular
1111

1212

@@ -87,7 +87,7 @@ def subplot_interferometer_dataset(
8787
)
8888

8989
hide_unused_axes(axes)
90-
plt.tight_layout()
90+
tight_layout()
9191
subplot_save(fig, output_path, output_filename, output_format)
9292

9393

@@ -142,7 +142,7 @@ def subplot_interferometer_dirty_images(
142142
)
143143

144144
hide_unused_axes(axes)
145-
plt.tight_layout()
145+
tight_layout()
146146
subplot_save(fig, output_path, output_filename, output_format)
147147

148148

autoarray/fit/plot/fit_imaging_plots.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import matplotlib.pyplot as plt
44

55
from autoarray.plot.array import plot_array
6-
from autoarray.plot.utils import subplot_save, symmetric_vmin_vmax, hide_unused_axes, conf_subplot_figsize
6+
from autoarray.plot.utils import subplot_save, symmetric_vmin_vmax, hide_unused_axes, conf_subplot_figsize, tight_layout
77

88

99
def subplot_fit_imaging(
@@ -121,5 +121,5 @@ def subplot_fit_imaging(
121121
)
122122

123123
hide_unused_axes(axes)
124-
plt.tight_layout()
124+
tight_layout()
125125
subplot_save(fig, output_path, output_filename, output_format)

autoarray/fit/plot/fit_interferometer_plots.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
from autoarray.plot.array import plot_array
77
from autoarray.plot.yx import plot_yx
8-
from autoarray.plot.utils import subplot_save, symmetric_vmin_vmax, hide_unused_axes, conf_subplot_figsize
8+
from autoarray.plot.utils import subplot_save, symmetric_vmin_vmax, hide_unused_axes, conf_subplot_figsize, tight_layout
99

1010

1111
def subplot_fit_interferometer(
@@ -99,7 +99,7 @@ def subplot_fit_interferometer(
9999
)
100100

101101
hide_unused_axes(axes)
102-
plt.tight_layout()
102+
tight_layout()
103103
subplot_save(fig, output_path, output_filename, output_format)
104104

105105

@@ -195,5 +195,5 @@ def subplot_fit_interferometer_dirty_images(
195195
)
196196

197197
hide_unused_axes(axes)
198-
plt.tight_layout()
198+
tight_layout()
199199
subplot_save(fig, output_path, output_filename, output_format)

autoarray/inversion/plot/inversion_plots.py

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

1010
from autoarray.inversion.mappers.abstract import Mapper
1111
from autoarray.plot.array import plot_array
12-
from autoarray.plot.utils import numpy_grid, numpy_lines, numpy_positions, subplot_save, hide_unused_axes, conf_subplot_figsize
12+
from autoarray.plot.utils import numpy_grid, numpy_lines, numpy_positions, subplot_save, hide_unused_axes, conf_subplot_figsize, tight_layout
1313
from autoarray.inversion.plot.mapper_plots import plot_mapper
1414
from autoarray.structures.arrays.uniform_2d import Array2D
1515

@@ -224,7 +224,7 @@ def _recon_array():
224224
pass
225225

226226
hide_unused_axes(axes)
227-
plt.tight_layout()
227+
tight_layout()
228228
subplot_save(fig, output_path, f"{output_filename}_{mapper_index}", output_format)
229229

230230

@@ -342,7 +342,7 @@ def subplot_mappings(
342342
)
343343

344344
hide_unused_axes(axes)
345-
plt.tight_layout()
345+
tight_layout()
346346
subplot_save(
347347
fig, output_path, f"{output_filename}_{pixelization_index}", output_format
348348
)

autoarray/inversion/plot/mapper_plots.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
from autoarray.plot.array import plot_array
77
from autoarray.plot.inversion import plot_inversion_reconstruction
8-
from autoarray.plot.utils import numpy_grid, numpy_lines, subplot_save, conf_subplot_figsize
8+
from autoarray.plot.utils import numpy_grid, numpy_lines, subplot_save, conf_subplot_figsize, tight_layout
99

1010
logger = logging.getLogger(__name__)
1111

@@ -133,5 +133,5 @@ def subplot_image_and_mapper(
133133
ax=axes[1],
134134
)
135135

136-
plt.tight_layout()
136+
tight_layout()
137137
subplot_save(fig, output_path, output_filename, output_format)

autoarray/plot/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ def _set_backend():
3232
conf_mat_plot_fontsize,
3333
save_figure,
3434
subplot_save,
35+
tight_layout,
3536
auto_mask_edge,
3637
zoom_array,
3738
numpy_grid,

autoarray/plot/utils.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,18 @@
1212
logger = logging.getLogger(__name__)
1313

1414

15+
def tight_layout():
16+
"""Call ``plt.tight_layout()`` unless fast-plot mode is active.
17+
18+
When ``PYAUTO_FAST_PLOTS=1`` the expensive layout-optimisation pass
19+
is skipped. All figure creation, data computation, and rendering
20+
still execute — only the final spacing adjustment is bypassed.
21+
"""
22+
if os.environ.get("PYAUTO_FAST_PLOTS") == "1":
23+
return
24+
plt.tight_layout()
25+
26+
1527
# ---------------------------------------------------------------------------
1628
# autoarray → numpy conversion helpers (used by high-level plot functions)
1729
# ---------------------------------------------------------------------------

0 commit comments

Comments
 (0)