@@ -449,7 +449,7 @@ class Quiver(mcollections.PolyCollection):
449
449
The API methods are set_UVC(), set_U(), set_V() and set_C(), which
450
450
can be used to change the size, orientation, and color of the
451
451
arrows; their locations are fixed when the class is
452
- instantiated. Possibly this method will be useful
452
+ instantiated. Possibly these methods will be useful
453
453
in animations.
454
454
455
455
Much of the work in this class is done in the draw()
@@ -477,8 +477,6 @@ def __init__(self, ax, *args,
477
477
X , Y , U , V , C = _parse_args (* args , caller_name = 'quiver' )
478
478
self .X = X
479
479
self .Y = Y
480
- self .XY = np .column_stack ((X , Y ))
481
- self .N = len (X )
482
480
self .scale = scale
483
481
self .headwidth = headwidth
484
482
self .headlength = float (headlength )
@@ -525,6 +523,14 @@ def _init(self):
525
523
526
524
self ._dpi_at_last_init = self .axes .figure .dpi
527
525
526
+ @property
527
+ def N (self ):
528
+ return len (self .X )
529
+
530
+ @property
531
+ def XY (self ):
532
+ return np .column_stack ((self .X , self .Y ))
533
+
528
534
def get_datalim (self , transData ):
529
535
trans = self .get_transform ()
530
536
offset_trf = self .get_offset_transform ()
@@ -590,6 +596,7 @@ def set_UVC(self, U, V, C=None):
590
596
The size must the same as the existing U, V or be one.
591
597
C : array-like or None, optional
592
598
The arrow colors. The default is None.
599
+ The size must the same as the existing U, V or be one.
593
600
"""
594
601
if U is None :
595
602
U = self .U
@@ -621,6 +628,19 @@ def set_UVC(self, U, V, C=None):
621
628
self .set_array (C )
622
629
self .stale = True
623
630
631
+ def set_offsets (self , xy ):
632
+ """
633
+ Set the offsets for the arrows. This saves the offsets passed
634
+ in and masks them as appropriate for the existing X/Y data.
635
+
636
+ Parameters
637
+ ----------
638
+ xy : sequence of pairs of floats
639
+ """
640
+ self .X , self .Y = xy [:, 0 ], xy [:, 1 ]
641
+ super ().set_offsets (xy )
642
+ self .stale = True
643
+
624
644
def _dots_per_unit (self , units ):
625
645
"""Return a scale factor for converting from units to pixels."""
626
646
bb = self .axes .bbox
0 commit comments