File tree Expand file tree Collapse file tree 2 files changed +43
-0
lines changed Expand file tree Collapse file tree 2 files changed +43
-0
lines changed Original file line number Diff line number Diff line change @@ -1795,6 +1795,18 @@ def _set_transforms(self):
1795
1795
m [:2 , 2 :] = 0
1796
1796
self .set_transform (_affine (m ))
1797
1797
1798
+ def set_widths (self , widths ):
1799
+ self ._widths = 0.5 * np .asarray (widths ).ravel ()
1800
+ self .stale = True
1801
+
1802
+ def set_angles (self , angles ):
1803
+ self ._angles = np .deg2rad (angles ).ravel ()
1804
+ self .stale = True
1805
+
1806
+ def set_heights (self , heights ):
1807
+ self ._heights = 0.5 * np .asarray (heights ).ravel ()
1808
+ self .stale = True
1809
+
1798
1810
@artist .allow_rasterization
1799
1811
def draw (self , renderer ):
1800
1812
self ._set_transforms ()
Original file line number Diff line number Diff line change @@ -408,6 +408,37 @@ def test_EllipseCollection():
408
408
ax .autoscale_view ()
409
409
410
410
411
+ def test_EllipseCollection_setter ():
412
+ # Test widths, heights and angle setter
413
+ rng = np .random .default_rng (0 )
414
+
415
+ widths = (2 , )
416
+ heights = (3 , )
417
+ angles = (45 , )
418
+ offsets = rng .random ((10 , 2 )) * 10
419
+
420
+ fig , ax = plt .subplots ()
421
+
422
+ ec = mcollections .EllipseCollection (
423
+ widths = widths ,
424
+ heights = heights ,
425
+ angles = angles ,
426
+ offsets = offsets ,
427
+ units = 'x' ,
428
+ offset_transform = ax .transData ,
429
+ )
430
+
431
+ ax .add_collection (ec )
432
+ ax .set_xlim (- 2 , 12 )
433
+ ax .set_ylim (- 2 , 12 )
434
+
435
+ new_widths = rng .random ((10 , 2 )) * 2
436
+ new_heights = rng .random ((10 , 2 )) * 3
437
+ new_angles = rng .random ((10 , 2 )) * 180
438
+
439
+ ec .set (widths = new_widths , heights = new_heights , angles = new_angles )
440
+
441
+
411
442
@image_comparison (['polycollection_close.png' ], remove_text = True , style = 'mpl20' )
412
443
def test_polycollection_close ():
413
444
from mpl_toolkits .mplot3d import Axes3D # type: ignore
You can’t perform that action at this time.
0 commit comments