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 cff7cc5

Browse filesBrowse files
committed
TST: move over to test_axes
1 parent e2c694d commit cff7cc5
Copy full SHA for cff7cc5

File tree

Expand file treeCollapse file tree

2 files changed

+204
-203
lines changed
Filter options
Expand file treeCollapse file tree

2 files changed

+204
-203
lines changed

‎lib/matplotlib/tests/test_axes.py

Copy file name to clipboardExpand all lines: lib/matplotlib/tests/test_axes.py
+204Lines changed: 204 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,15 @@
1717

1818
import matplotlib
1919
import matplotlib as mpl
20+
from matplotlib import rc_context
21+
import matplotlib.transforms as mtransforms
2022
from matplotlib.testing.decorators import (
2123
image_comparison, check_figures_equal, remove_ticks_and_titles)
2224
import matplotlib.pyplot as plt
2325
import matplotlib.markers as mmarkers
2426
import matplotlib.patches as mpatches
2527
import matplotlib.colors as mcolors
28+
2629
from numpy.testing import (
2730
assert_allclose, assert_array_equal, assert_array_almost_equal)
2831
from matplotlib.cbook import (
@@ -6035,3 +6038,204 @@ def invert(x):
60356038
fig.canvas.draw()
60366039
fig.set_size_inches((7, 4))
60376040
assert_allclose(ax.get_position().extents, [0.125, 0.1, 0.9, 0.9])
6041+
6042+
6043+
6044+
6045+
def color_boxes(fig, axs):
6046+
"""
6047+
Helper for extent tests below:
6048+
"""
6049+
fig.canvas.draw()
6050+
6051+
renderer = fig.canvas.get_renderer()
6052+
bbaxis = []
6053+
for nn, axx in enumerate([axs.xaxis, axs.yaxis]):
6054+
bb = axx.get_tightbbox(renderer)
6055+
if bb:
6056+
axisr = plt.Rectangle((bb.x0, bb.y0), width=bb.width,
6057+
height=bb.height, linewidth=0.7, edgecolor='y',
6058+
facecolor="none", transform=None, zorder=3)
6059+
fig.add_artist(axisr)
6060+
bbaxis += [bb]
6061+
6062+
bbspines = []
6063+
for nn, a in enumerate(['bottom', 'top', 'left', 'right']):
6064+
bb = axs.spines[a].get_window_extent(renderer)
6065+
if bb:
6066+
spiner = plt.Rectangle((bb.x0, bb.y0), width=bb.width,
6067+
height=bb.height, linewidth=0.7,
6068+
edgecolor="green", facecolor="none",
6069+
transform=None, zorder=3)
6070+
fig.add_artist(spiner)
6071+
bbspines += [bb]
6072+
6073+
bb = axs.get_window_extent()
6074+
if bb:
6075+
rect2 = plt.Rectangle((bb.x0, bb.y0), width=bb.width, height=bb.height,
6076+
linewidth=1.5, edgecolor="magenta",
6077+
facecolor="none", transform=None, zorder=2)
6078+
fig.add_artist(rect2)
6079+
bbax = bb
6080+
6081+
bb2 = axs.get_tightbbox(renderer)
6082+
if bb2:
6083+
rect2 = plt.Rectangle((bb2.x0, bb2.y0), width=bb2.width,
6084+
height=bb2.height, linewidth=3, edgecolor="red",
6085+
facecolor="none", transform=None, zorder=1)
6086+
fig.add_artist(rect2)
6087+
bbtb = bb2
6088+
return bbaxis, bbspines, bbax, bbtb
6089+
6090+
6091+
def test_normal_axes_extents():
6092+
with rc_context({'_internal.classic_mode': False}):
6093+
fig, ax = plt.subplots(dpi=200, figsize=(6, 6))
6094+
fig.canvas.draw()
6095+
plt.close(fig)
6096+
bbaxis, bbspines, bbax, bbtb = color_boxes(fig, ax)
6097+
6098+
# test the axis bboxes
6099+
target = [
6100+
[123.375, 75.88888888888886, 983.25, 33.0],
6101+
[85.51388888888889, 99.99999999999997, 53.375, 993.0]
6102+
]
6103+
for nn, b in enumerate(bbaxis):
6104+
targetbb = mtransforms.Bbox.from_bounds(*target[nn])
6105+
assert_array_almost_equal(b.bounds, targetbb.bounds, decimal=2)
6106+
6107+
target = [
6108+
[150.0, 119.999, 930.0, 11.111],
6109+
[150.0, 1080.0, 930.0, 0.0],
6110+
[150.0, 119.9999, 11.111, 960.0],
6111+
[1068.8888, 119.9999, 11.111, 960.0]
6112+
]
6113+
for nn, b in enumerate(bbspines):
6114+
targetbb = mtransforms.Bbox.from_bounds(*target[nn])
6115+
assert_array_almost_equal(b.bounds, targetbb.bounds, decimal=2)
6116+
6117+
target = [150.0, 119.99999999999997, 930.0, 960.0]
6118+
targetbb = mtransforms.Bbox.from_bounds(*target)
6119+
assert_array_almost_equal(bbax.bounds, targetbb.bounds, decimal=2)
6120+
6121+
target = [85.5138, 75.88888, 1021.11, 1017.11]
6122+
targetbb = mtransforms.Bbox.from_bounds(*target)
6123+
assert_array_almost_equal(bbtb.bounds, targetbb.bounds, decimal=2)
6124+
6125+
# test that get_position roundtrips to get_window_extent
6126+
axbb = ax.get_position().transformed(fig.transFigure).bounds
6127+
assert_array_almost_equal(axbb, ax.get_window_extent().bounds, decimal=2)
6128+
6129+
6130+
6131+
def test_nodecorator_extents():
6132+
with rc_context({'_internal.classic_mode': False}):
6133+
fig, ax = plt.subplots(dpi=200, figsize=(6, 6))
6134+
fig.canvas.draw()
6135+
ax.set(xticklabels=[], yticklabels=[])
6136+
bbaxis, bbspines, bbax, bbtb = color_boxes(fig, ax)
6137+
6138+
# test the axis bboxes
6139+
target = [
6140+
None,
6141+
None
6142+
]
6143+
for nn, b in enumerate(bbaxis):
6144+
assert b is None
6145+
6146+
target = [
6147+
[150.0, 119.999, 930.0, 11.111],
6148+
[150.0, 1080.0, 930.0, 0.0],
6149+
[150.0, 119.9999, 11.111, 960.0],
6150+
[1068.8888, 119.9999, 11.111, 960.0]
6151+
]
6152+
for nn, b in enumerate(bbspines):
6153+
targetbb = mtransforms.Bbox.from_bounds(*target[nn])
6154+
assert_allclose(b.bounds, targetbb.bounds, atol=1e-2)
6155+
6156+
target = [150.0, 119.99999999999997, 930.0, 960.0]
6157+
targetbb = mtransforms.Bbox.from_bounds(*target)
6158+
assert_allclose(bbax.bounds, targetbb.bounds, atol=1e-2)
6159+
6160+
target = [150., 120., 930., 960.]
6161+
targetbb = mtransforms.Bbox.from_bounds(*target)
6162+
assert_allclose(bbtb.bounds, targetbb.bounds, atol=1e-2)
6163+
6164+
6165+
def test_displaced_spine_extents():
6166+
with rc_context({'_internal.classic_mode': False}):
6167+
fig, ax = plt.subplots(dpi=200, figsize=(6, 6))
6168+
ax.set(xticklabels=[], yticklabels=[])
6169+
ax.spines['bottom'].set_position(('axes', -0.1))
6170+
fig.canvas.draw()
6171+
bbaxis, bbspines, bbax, bbtb = color_boxes(fig, ax)
6172+
6173+
target = [
6174+
[150., 24., 930., 11.111111],
6175+
[150.0, 1080.0, 930.0, 0.0],
6176+
[150.0, 119.9999, 11.111, 960.0],
6177+
[1068.8888, 119.9999, 11.111, 960.0]
6178+
]
6179+
for nn, b in enumerate(bbspines):
6180+
targetbb = mtransforms.Bbox.from_bounds(*target[nn])
6181+
6182+
target = [150.0, 119.99999999999997, 930.0, 960.0]
6183+
targetbb = mtransforms.Bbox.from_bounds(*target)
6184+
assert_allclose(bbax.bounds, targetbb.bounds, atol=1e-2)
6185+
6186+
target = [150., 24., 930., 1056.]
6187+
targetbb = mtransforms.Bbox.from_bounds(*target)
6188+
assert_allclose(bbtb.bounds, targetbb.bounds, atol=1e-2)
6189+
6190+
6191+
def test_tickdirs_extents():
6192+
"""
6193+
Switch the tickdirs and make sure the bboxes switch with them
6194+
"""
6195+
targets = [[[150.0, 120.0, 930.0, 11.1111],
6196+
[150.0, 120.0, 11.111, 960.0]],
6197+
[[150.0, 108.8889, 930.0, 11.111111111111114],
6198+
[138.889, 120, 11.111, 960.0]],
6199+
[[150.0, 114.44444444444441, 930.0, 11.111111111111114],
6200+
[144.44444444444446, 119.999, 11.111, 960.0]]]
6201+
for dnum, dirs in enumerate(['in', 'out', 'inout']):
6202+
with rc_context({'_internal.classic_mode': False}):
6203+
fig, ax = plt.subplots(dpi=200, figsize=(6, 6))
6204+
ax.tick_params(direction=dirs)
6205+
fig.canvas.draw()
6206+
bbaxis, bbspines, bbax, bbtb = color_boxes(fig, ax)
6207+
for nn, num in enumerate([0, 2]):
6208+
targetbb = mtransforms.Bbox.from_bounds(*targets[dnum][nn])
6209+
assert_allclose(bbspines[num].bounds, targetbb.bounds,
6210+
atol=1e-2)
6211+
6212+
6213+
def test_minor_accountedfor_extents():
6214+
with rc_context({'_internal.classic_mode': False}):
6215+
fig, ax = plt.subplots(dpi=200, figsize=(6, 6))
6216+
fig.canvas.draw()
6217+
ax.tick_params(which='both', direction='out')
6218+
6219+
bbaxis, bbspines, bbax, bbtb = color_boxes(fig, ax)
6220+
bbaxis, bbspines, bbax, bbtb = color_boxes(fig, ax)
6221+
targets = [[150.0, 108.88888888888886, 930.0, 11.111111111111114],
6222+
[138.8889, 119.9999, 11.1111, 960.0]]
6223+
for n in range(2):
6224+
targetbb = mtransforms.Bbox.from_bounds(*targets[n])
6225+
assert_allclose(bbspines[n * 2].bounds, targetbb.bounds,
6226+
atol=1e-2)
6227+
6228+
fig, ax = plt.subplots(dpi=200, figsize=(6, 6))
6229+
fig.canvas.draw()
6230+
ax.tick_params(which='both', direction='out')
6231+
ax.minorticks_on()
6232+
ax.tick_params(axis='both', which='minor', length=30)
6233+
fig.canvas.draw()
6234+
bbaxis, bbspines, bbax, bbtb = color_boxes(fig, ax)
6235+
targets = [[150.0, 36.66666666666663, 930.0, 83.33333333333334],
6236+
[66.6667, 120.0, 83.3333, 960.0]]
6237+
6238+
for n in range(2):
6239+
targetbb = mtransforms.Bbox.from_bounds(*targets[n])
6240+
assert_allclose(bbspines[n * 2].bounds, targetbb.bounds,
6241+
atol=1e-2)

0 commit comments

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