@@ -434,36 +434,39 @@ def draw(self, renderer):
434
434
435
435
# add the projection matrix to the renderer
436
436
self .M = self .get_proj ()
437
- renderer .M = self .M
438
- renderer .vvec = self .vvec
439
- renderer .eye = self .eye
440
- renderer .get_axis_position = self .get_axis_position
441
-
442
- # Calculate projection of collections and patches and zorder them.
443
- # Make sure they are drawn above the grids.
444
- zorder_offset = max (axis .get_zorder ()
445
- for axis in self ._get_axis_list ()) + 1
446
- for i , col in enumerate (
447
- sorted (self .collections ,
448
- key = lambda col : col .do_3d_projection (renderer ),
449
- reverse = True )):
450
- col .zorder = zorder_offset + i
451
- for i , patch in enumerate (
452
- sorted (self .patches ,
453
- key = lambda patch : patch .do_3d_projection (renderer ),
454
- reverse = True )):
455
- patch .zorder = zorder_offset + i
456
-
457
- if self ._axis3don :
458
- # Draw panes first
459
- for axis in self ._get_axis_list ():
460
- axis .draw_pane (renderer )
461
- # Then axes
462
- for axis in self ._get_axis_list ():
463
- axis .draw (renderer )
437
+ props3d = {
438
+ name : cbook .deprecated ('3.4' , name = name ,
439
+ alternative = f'self.axes.{ name } ' )(
440
+ property (lambda self , _value = getattr (self , name ): _value ))
441
+ for name in ['M' , 'vvec' , 'eye' , 'get_axis_position' ]
442
+ }
464
443
465
- # Then rest
466
- super ().draw (renderer )
444
+ with cbook ._setattr_cm (type (renderer ), ** props3d ):
445
+ # Calculate projection of collections and patches and zorder them.
446
+ # Make sure they are drawn above the grids.
447
+ zorder_offset = max (axis .get_zorder ()
448
+ for axis in self ._get_axis_list ()) + 1
449
+ for i , col in enumerate (
450
+ sorted (self .collections ,
451
+ key = lambda col : col .do_3d_projection (renderer ),
452
+ reverse = True )):
453
+ col .zorder = zorder_offset + i
454
+ for i , patch in enumerate (
455
+ sorted (self .patches ,
456
+ key = lambda patch : patch .do_3d_projection (renderer ),
457
+ reverse = True )):
458
+ patch .zorder = zorder_offset + i
459
+
460
+ if self ._axis3don :
461
+ # Draw panes first
462
+ for axis in self ._get_axis_list ():
463
+ axis .draw_pane (renderer )
464
+ # Then axes
465
+ for axis in self ._get_axis_list ():
466
+ axis .draw (renderer )
467
+
468
+ # Then rest
469
+ super ().draw (renderer )
467
470
468
471
def get_axis_position (self ):
469
472
vals = self .get_w_lims ()
0 commit comments