8000 Merge pull request #2835 from efiring/quiver_animate · matplotlib/matplotlib@b04c8f5 · GitHub
[go: up one dir, main page]

Skip to content

Commit b04c8f5

Browse files
committed
Merge pull request #2835 from efiring/quiver_animate
quiver: handle autoscaling with quiverkey when animated
2 parents 01ee254 + e6e4e04 commit b04c8f5

File tree

3 files changed

+23
-2
lines changed

3 files changed

+23
-2
lines changed

lib/matplotlib/quiver.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -283,6 +283,8 @@ def remove(self):
283283

284284
def _init(self):
285285
if True: # not self._initialized:
286+
if not self.Q._initialized:
287+
self.Q._init()
286288
self._set_transform()
287289
_pivot = self.Q.pivot
288290
self.Q.pivot = self.pivot[self.labelpos]
@@ -485,6 +487,12 @@ def _init(self):
485487
sn = max(8, min(25, math.sqrt(self.N)))
486488
self.width = 0.06 * self.span / sn
487489

490+
# _make_verts sets self.scale if not already specified
491+
if not self._initialized and self.scale is None:
492+
self._make_verts(self.U, self.V)
493+
494+
self._initialized = True
495+
488496
@allow_rasterization
489497
def draw(self, renderer):
490498
self._init()
Loading

lib/matplotlib/tests/test_quiver.py

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@
88
from matplotlib.testing.decorators import image_comparison
99

1010

11-
def draw_quiver(ax):
11+
def draw_quiver(ax, **kw):
1212
X, Y = np.meshgrid(np.arange(0, 2 * np.pi, 1),
1313
np.arange(0, 2 * np.pi, 1))
1414
U = np.cos(X)
1515
V = np.sin(Y)
1616

17-
Q = ax.quiver(U, V)
17+
Q = ax.quiver(U, V, **kw)
1818
return Q
1919

2020

@@ -45,6 +45,19 @@ def test_quiver_key_memory_leak():
4545
assert sys.getrefcount(qk) == 2
4646

4747

48+
@image_comparison(baseline_images=['quiver_animated_test_image'],
49+
extensions=['png'])
50+
def test_quiver_animate():
51+
# Tests fix for #2616
52+
fig, ax = plt.subplots()
53+
54+
Q = draw_quiver(ax, animated=True)
55+
56+
qk = ax.quiverkey(Q, 0.5, 0.92, 2, r'$2 \frac{m}{s}$',
57+
labelpos='W',
58+
fontproperties={'weight': 'bold'})
59+
60+
4861
@image_comparison(baseline_images=['quiver_with_key_test_image'],
4962
extensions=['png'])
5063
def test_quiver_with_key():

0 commit comments

Comments
 (0)
0