Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 4c5eff9

Browse filesBrowse files
authored
Merge pull request #20073 from anntzer/adsf
Support SubFigures in AxesDivider.
2 parents 17af10e + 8e6a3e5 commit 4c5eff9
Copy full SHA for 4c5eff9

File tree

Expand file treeCollapse file tree

4 files changed

+30
-29
lines changed
Filter options
Expand file treeCollapse file tree

4 files changed

+30
-29
lines changed

‎examples/axes_grid1/simple_axes_divider1.py

Copy file name to clipboardExpand all lines: examples/axes_grid1/simple_axes_divider1.py
+18-19Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
=====================
33
Simple Axes Divider 1
44
=====================
5+
6+
See also :doc:`/tutorials/toolkits/axes_grid`.
57
"""
68

79
from mpl_toolkits.axes_grid1 import Size, Divider
@@ -16,51 +18,48 @@ def label_axes(ax, text):
1618
left=False, labelleft=False)
1719

1820

19-
##############################################################################
20-
# Fixed axes sizes; fixed paddings.
21+
fig = plt.figure(figsize=(12, 6))
22+
sfs = fig.subfigures(1, 2)
2123

22-
fig = plt.figure(figsize=(6, 6))
23-
fig.suptitle("Fixed axes sizes, fixed paddings")
2424

25+
sfs[0].suptitle("Fixed axes sizes, fixed paddings")
2526
# Sizes are in inches.
2627
horiz = [Size.Fixed(1.), Size.Fixed(.5), Size.Fixed(1.5), Size.Fixed(.5)]
2728
vert = [Size.Fixed(1.5), Size.Fixed(.5), Size.Fixed(1.)]
2829

2930
rect = (0.1, 0.1, 0.8, 0.8)
3031
# Divide the axes rectangle into a grid with sizes specified by horiz * vert.
31-
divider = Divider(fig, rect, horiz, vert, aspect=False)
32+
div = Divider(sfs[0], rect, horiz, vert, aspect=False)
3233

3334
# The rect parameter will actually be ignored and overridden by axes_locator.
34-
ax1 = fig.add_axes(rect, axes_locator=divider.new_locator(nx=0, ny=0))
35+
ax1 = sfs[0].add_axes(rect, axes_locator=div.new_locator(nx=0, ny=0))
3536
label_axes(ax1, "nx=0, ny=0")
36-
ax2 = fig.add_axes(rect, axes_locator=divider.new_locator(nx=0, ny=2))
37+
ax2 = sfs[0].add_axes(rect, axes_locator=div.new_locator(nx=0, ny=2))
3738
label_axes(ax2, "nx=0, ny=2")
38-
ax3 = fig.add_axes(rect, axes_locator=divider.new_locator(nx=2, ny=2))
39+
ax3 = sfs[0].add_axes(rect, axes_locator=div.new_locator(nx=2, ny=2))
3940
label_axes(ax3, "nx=2, ny=2")
40-
ax4 = fig.add_axes(rect, axes_locator=divider.new_locator(nx=2, nx1=4, ny=0))
41+
ax4 = sfs[0].add_axes(rect, axes_locator=div.new_locator(nx=2, nx1=4, ny=0))
4142
label_axes(ax4, "nx=2, nx1=4, ny=0")
4243

43-
##############################################################################
44-
# Axes sizes that scale with the figure size; fixed paddings.
45-
46-
fig = plt.figure(figsize=(6, 6))
47-
fig.suptitle("Scalable axes sizes, fixed paddings")
4844

45+
sfs[1].suptitle("Scalable axes sizes, fixed paddings")
46+
# Fixed sizes are in inches, scaled sizes are relative.
4947
horiz = [Size.Scaled(1.5), Size.Fixed(.5), Size.Scaled(1.), Size.Scaled(.5)]
5048
vert = [Size.Scaled(1.), Size.Fixed(.5), Size.Scaled(1.5)]
5149

5250
rect = (0.1, 0.1, 0.8, 0.8)
5351
# Divide the axes rectangle into a grid with sizes specified by horiz * vert.
54-
divider = Divider(fig, rect, horiz, vert, aspect=False)
52+
div = Divider(sfs[1], rect, horiz, vert, aspect=False)
5553

5654
# The rect parameter will actually be ignored and overridden by axes_locator.
57-
ax1 = fig.add_axes(rect, axes_locator=divider.new_locator(nx=0, ny=0))
55+
ax1 = sfs[1].add_axes(rect, axes_locator=div.new_locator(nx=0, ny=0))
5856
label_axes(ax1, "nx=0, ny=0")
59-
ax2 = fig.add_axes(rect, axes_locator=divider.new_locator(nx=0, ny=2))
57+
ax2 = sfs[1].add_axes(rect, axes_locator=div.new_locator(nx=0, ny=2))
6058
label_axes(ax2, "nx=0, ny=2")
61-
ax3 = fig.add_axes(rect, axes_locator=divider.new_locator(nx=2, ny=2))
59+
ax3 = sfs[1].add_axes(rect, axes_locator=div.new_locator(nx=2, ny=2))
6260
label_axes(ax3, "nx=2, ny=2")
63-
ax4 = fig.add_axes(rect, axes_locator=divider.new_locator(nx=2, nx1=4, ny=0))
61+
ax4 = sfs[1].add_axes(rect, axes_locator=div.new_locator(nx=2, nx1=4, ny=0))
6462
label_axes(ax4, "nx=2, nx1=4, ny=0")
6563

64+
6665
plt.show()

‎examples/axes_grid1/simple_axes_divider3.py

Copy file name to clipboardExpand all lines: examples/axes_grid1/simple_axes_divider3.py
+2Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@
33
Simple Axes Divider 3
44
=====================
55
6+
See also :doc:`/tutorials/toolkits/axes_grid`.
67
"""
8+
79
import mpl_toolkits.axes_grid1.axes_size as Size
810
from mpl_toolkits.axes_grid1 import Divider
911
import matplotlib.pyplot as plt

‎lib/mpl_toolkits/axes_grid1/axes_divider.py

Copy file name to clipboardExpand all lines: lib/mpl_toolkits/axes_grid1/axes_divider.py
+9-9Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -188,21 +188,21 @@ def locate(self, nx, ny, nx1=None, ny1=None, axes=None, renderer=None):
188188
renderer
189189
"""
190190

191-
figW, figH = self._fig.get_size_inches()
191+
fig_w, fig_h = self._fig.bbox.size / self._fig.dpi
192192
x, y, w, h = self.get_position_runtime(axes, renderer)
193193

194194
hsizes = self.get_horizontal_sizes(renderer)
195195
vsizes = self.get_vertical_sizes(renderer)
196-
k_h = self._calc_k(hsizes, figW*w)
197-
k_v = self._calc_k(vsizes, figH*h)
196+
k_h = self._calc_k(hsizes, fig_w * w)
197+
k_v = self._calc_k(vsizes, fig_h * h)
198198

199199
if self.get_aspect():
200200
k = min(k_h, k_v)
201201
ox = self._calc_offsets(hsizes, k)
202202
oy = self._calc_offsets(vsizes, k)
203203

204-
ww = (ox[-1] - ox[0]) / figW
205-
hh = (oy[-1] - oy[0]) / figH
204+
ww = (ox[-1] - ox[0]) / fig_w
205+
hh = (oy[-1] - oy[0]) / fig_h
206206
pb = mtransforms.Bbox.from_bounds(x, y, w, h)
207207
pb1 = mtransforms.Bbox.from_bounds(x, y, ww, hh)
208208
pb1_anchored = pb1.anchored(self.get_anchor(), pb)
@@ -218,8 +218,8 @@ def locate(self, nx, ny, nx1=None, ny1=None, axes=None, renderer=None):
218218
if ny1 is None:
219219
ny1 = ny + 1
220220

221-
x1, w1 = x0 + ox[nx] / figW, (ox[nx1] - ox[nx]) / figW
222-
y1, h1 = y0 + oy[ny] / figH, (oy[ny1] - oy[ny]) / figH
221+
x1, w1 = x0 + ox[nx] / fig_w, (ox[nx1] - ox[nx]) / fig_w
222+
y1, h1 = y0 + oy[ny] / fig_h, (oy[ny1] - oy[ny]) / fig_h
223223

224224
return mtransforms.Bbox.from_bounds(x1, y1, w1, h1)
225225

@@ -649,7 +649,7 @@ def new_locator(self, nx, nx1=None):
649649

650650
def locate(self, nx, ny, nx1=None, ny1=None, axes=None, renderer=None):
651651
# docstring inherited
652-
fig_w, fig_h = self._fig.get_size_inches()
652+
fig_w, fig_h = self._fig.bbox.size / self._fig.dpi
653653
x, y, w, h = self.get_position_runtime(axes, renderer)
654654
summed_ws = self.get_horizontal_sizes(renderer)
655655
equal_hs = self.get_vertical_sizes(renderer)
@@ -684,7 +684,7 @@ def new_locator(self, ny, ny1=None):
684684

685685
def locate(self, nx, ny, nx1=None, ny1=None, axes=None, renderer=None):
686686
# docstring inherited
687-
fig_w, fig_h = self._fig.get_size_inches()
687+
fig_w, fig_h = self._fig.bbox.size / self._fig.dpi
688688
x, y, w, h = self.get_position_runtime(axes, renderer)
689689
summed_hs = self.get_vertical_sizes(renderer)
690690
equal_ws = self.get_horizontal_sizes(renderer)

‎tutorials/toolkits/axes_grid.py

Copy file name to clipboardExpand all lines: tutorials/toolkits/axes_grid.py
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,7 @@
331331
332332
See the example,
333333
334-
.. figure:: ../../gallery/axes_grid1/images/sphx_glr_simple_axes_divider1_002.png
334+
.. figure:: ../../gallery/axes_grid1/images/sphx_glr_simple_axes_divider1_001.png
335335
:target: ../../gallery/axes_grid1/simple_axes_divider1.html
336336
:align: center
337337
:scale: 50

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.