Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 9d60378

Browse files
committed
Deprecate accessing QuiverKey internal Artists.
1 parent 788af63 commit 9d60378

File tree

3 files changed

+41
-26
lines changed

3 files changed

+41
-26
lines changed
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
``QuiverKey`` internal Artists
2+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3+
4+
Access to the following `.quiver.QuiverKey` internal Artists is now deprecated.
5+
You may instead use `.quiver.QuiverKey`-level methods to modify these Artists.
6+
7+
- ``QuiverKey.text``
8+
- ``QuiverKey.vector``
9+
- ``QuiverKey.verts``
10+

lib/matplotlib/quiver.py

Lines changed: 30 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,11 @@ class QuiverKey(martist.Artist):
198198
valign = {'N': 'bottom', 'S': 'top', 'E': 'center', 'W': 'center'}
199199
pivot = {'N': 'middle', 'S': 'middle', 'E': 'tip', 'W': 'tail'}
200200

201+
text = cbook._deprecate_privatize_attribute(
202+
'3.4', alternative='QuiverKey methods')
203+
vector = cbook._deprecate_privatize_attribute('3.4')
204+
verts = cbook._deprecate_privatize_attribute('3.4')
205+
201206
def __init__(self, Q, X, Y, U, label,
202207
*, angle=0, coordinates='axes', color=None, labelsep=0.1,
203208
labelpos='N', labelcolor=None, fontproperties=None,
@@ -275,7 +280,7 @@ def on_dpi_change(fig):
275280
self.fontproperties = fontproperties or dict()
276281
self.kw = kwargs
277282
_fp = self.fontproperties
278-
self.text = mtext.Text(
283+
self._text = mtext.Text(
279284
x=X, y=Y, text=label,
280285
horizontalalignment=self.halign[self._labelpos],
281286
verticalalignment=self.valign[self._labelpos],
@@ -287,7 +292,7 @@ def on_dpi_change(fig):
287292

288293
def get_x(self):
289294
"""Return the *x* position of the QuiverKey."""
290-
return self.text.get_position()[0]
295+
return self._text.get_position()[0]
291296

292297
def set_x(self, x):
293298
"""
@@ -298,14 +303,14 @@ def set_x(self, x):
298303
x : float
299304
The *x* location of the key.
300305
"""
301-
self.text.set_x(x)
306+
self._text.set_x(x)
302307
self.stale = True
303308

304309
X = property(get_x, set_x)
305310

306311
def get_y(self):
307312
"""Return the *y* position of the QuiverKey."""
308-
return self.text.get_position()[1]
313+
return self._text.get_position()[1]
309314

310315
def set_y(self, y):
311316
"""
@@ -316,14 +321,14 @@ def set_y(self, y):
316321
y : float
317322
The *y* location of the key.
318323
"""
319-
self.text.set_y(y)
324+
self._text.set_y(y)
320325
self.stale = True
321326

322327
Y = property(get_y, set_y)
323328

324329
def get_position(self):
325330
"""Return the (x, y) position of the QuiverKey."""
326-
return self.text.get_position()
331+
return self._text.get_position()
327332

328333
def set_position(self, xy):
329334
"""
@@ -334,27 +339,27 @@ def set_position(self, xy):
334339
xy : (float, float)
335340
The (*x*, *y*) position of the QuiverKey.
336341
"""
337-
self.text.set_position(xy)
342+
self._text.set_position(xy)
338343
self.stale = True
339344

340345
def get_label(self):
341346
"""Return the label string."""
342-
return self.text.get_text()
347+
return self._text.get_text()
343348

344349
def set_label(self, text):
345350
"""Set the label string."""
346-
self.text.set_text(text)
351+
self._text.set_text(text)
347352
self.stale = True
348353

349354
label = property(get_label, set_label, doc="The label string.")
350355

351356
def get_labelcolor(self):
352357
"""Return the label color."""
353-
return self.text.get_color()
358+
return self._text.get_color()
354359

355360
def set_labelcolor(self, labelcolor):
356361
"""Set the label color."""
357-
self.text.set_color(labelcolor)
362+
self._text.set_color(labelcolor)
358363
self.stale = True
359364

360365
labelcolor = property(get_labelcolor, set_labelcolor,
@@ -376,8 +381,8 @@ def set_labelpos(self, labelpos):
376381
"""
377382
_api.check_in_list(['N', 'S', 'E', 'W'], labelpos=labelpos)
378383
self._labelpos = labelpos
379-
self.text.set_horizontalalignment(self.halign[labelpos])
380-
self.text.set_verticalalignment(self.valign[labelpos])
384+
self._text.set_horizontalalignment(self.halign[labelpos])
385+
self._text.set_verticalalignment(self.valign[labelpos])
381386
self._update_text_transform()
382387
self._initialized = False
383388
self.stale = True
@@ -417,19 +422,19 @@ def _init(self):
417422
v = self.U * np.sin(np.radians(self.angle))
418423
angle = (self.Q.angles if isinstance(self.Q.angles, str)
419424
else 'uv')
420-
self.verts = self.Q._make_verts(
425+
self._verts = self.Q._make_verts(
421426
np.array([u]), np.array([v]), angle)
422427
kwargs = self.Q.polykw
423428
kwargs.update(self.kw)
424-
self.vector = mcollections.PolyCollection(
425-
self.verts,
429+
self._vector = mcollections.PolyCollection(
430+
self._verts,
426431
offsets=[(self.X, self.Y)],
427432
transOffset=self.get_transform(),
428433
**kwargs)
429434
if self.color is not None:
430-
self.vector.set_color(self.color)
431-
self.vector.set_transform(self.Q.get_transform())
432-
self.vector.set_figure(self.get_figure())
435+
self._vector.set_color(self.color)
436+
self._vector.set_transform(self.Q.get_transform())
437+
self._vector.set_figure(self.get_figure())
433438
self._initialized = True
434439

435440
def _update_text_transform(self):
@@ -442,16 +447,16 @@ def _update_text_transform(self):
442447
y = self._labelsep_inches
443448
elif self._labelpos == 'S':
444449
y = -self._labelsep_inches
445-
self.text.set_transform(
450+
self._text.set_transform(
446451
transforms.offset_copy(
447452
self.get_transform(), self.figure, x=x, y=y))
448453

449454
@martist.allow_rasterization
450455
def draw(self, renderer):
451456
self._init()
452-
self.vector.draw(renderer)
457+
self._vector.draw(renderer)
453458
self._update_text_transform()
454-
self.text.draw(renderer)
459+
self._text.draw(renderer)
455460
self.stale = False
456461

457462
def _set_transform(self):
@@ -464,16 +469,16 @@ def _set_transform(self):
464469

465470
def set_figure(self, fig):
466471
super().set_figure(fig)
467-
self.text.set_figure(fig)
472+
self._text.set_figure(fig)
468473

469474
def contains(self, mouseevent):
470475
inside, info = self._default_contains(mouseevent)
471476
if inside is not None:
472477
return inside, info
473478
# Maybe the dictionary should allow one to
474479
# distinguish between a text hit and a vector hit.
475-
if (self.text.contains(mouseevent)[0] or
476-
self.vector.contains(mouseevent)[0]):
480+
if (self._text.contains(mouseevent)[0] or
481+
self._vector.contains(mouseevent)[0]):
477482
return True, {}
478483
return False, {}
479484

lib/matplotlib/tests/test_quiver.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,7 @@ def test_quiverkey_angles():
249249
qk = ax.quiverkey(q, 1, 1, 2, 'Label')
250250
# The arrows are only created when the key is drawn
251251
fig.canvas.draw()
252-
assert len(qk.verts) == 1
252+
assert len(qk._verts) == 1
253253

254254

255255
def test_quiver_setuvc_numbers():

0 commit comments

Comments
 (0)