Skip to content

Commit 73deb1a

Browse files
nrnavaneetQuLogic
authored andcommitted
Backport PR matplotlib#30243: Fix FancyArrow rendering for zero-length arrows
1 parent 5c13534 commit 73deb1a

File tree

3 files changed

+16
-5
lines changed

3 files changed

+16
-5
lines changed

lib/matplotlib/patches.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1515,7 +1515,7 @@ def _make_verts(self):
15151515
length = distance
15161516
else:
15171517
length = distance + head_length
1518-
if not length:
1518+
if np.size(length) == 0:
15191519
self.verts = np.empty([0, 2]) # display nothing if empty
15201520
else:
15211521
# start by drawing horizontal arrow, point at (0, 0)

lib/matplotlib/tests/test_patches.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -999,3 +999,9 @@ def test_set_and_get_hatch_linewidth(fig_test, fig_ref):
999999

10001000
assert ax_ref.patches[0].get_hatch_linewidth() == lw
10011001
assert ax_test.patches[0].get_hatch_linewidth() == lw
1002+
1003+
1004+
def test_empty_fancyarrow():
1005+
fig, ax = plt.subplots()
1006+
arrow = ax.arrow([], [], [], [])
1007+
assert arrow is not None

tools/triage_tests.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@ def __init__(self, path, root, source):
254254
self.expected_display = f'{basename}-expected{display_extension}.png'
255255
self.generated_display = f'{basename}{display_extension}.png'
256256
self.name = self.reldir / self.basename
257-
self.destdir = self.get_dest_dir(self.reldir)
257+
self.destdir = self.get_dest_dir()
258258

259259
self.thumbnails = [
260260
self.generated_display,
@@ -272,16 +272,21 @@ def __init__(self, path, root, source):
272272
else:
273273
self.status = 'unknown'
274274

275-
def get_dest_dir(self, reldir):
275+
def get_dest_dir(self):
276276
"""
277277
Find the source tree directory corresponding to the given
278278
result_images subdirectory.
279279
"""
280+
expected = self.root / self.reldir / self.expected
281+
if expected.is_symlink():
282+
path = expected.readlink().parent
283+
if path.is_dir():
284+
return path
280285
for baseline_dir in BASELINE_IMAGES:
281-
path = self.source / baseline_dir / reldir
286+
path = self.source / baseline_dir / self.reldir
282287
if path.is_dir():
283288
return path
284-
raise ValueError(f"Can't find baseline dir for {reldir}")
289+
raise ValueError(f"Can't find baseline dir for {self.reldir}")
285290

286291
@property
287292
def display(self):

0 commit comments

Comments
 (0)