@@ -135,8 +135,7 @@ def set_3d_properties(self, z=0, zdir='z'):
135
135
def draw (self , renderer ):
136
136
position3d = np .array ((self ._x , self ._y , self ._z ))
137
137
proj = proj3d .proj_trans_points (
138
- [position3d , position3d + self ._dir_vec ],
139
- renderer .M )
138
+ [position3d , position3d + self ._dir_vec ], self .axes .M )
140
139
dx = proj [0 ][1 ] - proj [0 ][0 ]
141
140
dy = proj [1 ][1 ] - proj [1 ][0 ]
142
141
angle = math .degrees (math .atan2 (dy , dx ))
@@ -213,7 +212,7 @@ def get_data_3d(self):
213
212
@artist .allow_rasterization
214
213
def draw (self , renderer ):
215
214
xs3d , ys3d , zs3d = self ._verts3d
216
- xs , ys , zs = proj3d .proj_transform (xs3d , ys3d , zs3d , renderer .M )
215
+ xs , ys , zs = proj3d .proj_transform (xs3d , ys3d , zs3d , self . axes .M )
217
216
self .set_data (xs , ys )
218
217
super ().draw (renderer )
219
218
self .stale = False
@@ -297,13 +296,13 @@ def set_segments(self, segments):
297
296
self ._segments3d = segments
298
297
super ().set_segments ([])
299
298
300
- def do_3d_projection (self , renderer ):
299
+ @cbook ._delete_parameter ('3.4' , 'renderer' )
300
+ def do_3d_projection (self , renderer = None ):
301
301
"""
302
302
Project the points according to renderer matrix.
303
303
"""
304
- xyslist = [
305
- proj3d .proj_trans_points (points , renderer .M ) for points in
306
- self ._segments3d ]
304
+ xyslist = [proj3d .proj_trans_points (points , self .axes .M )
305
+ for points in self ._segments3d ]
307
306
segments_2d = [np .column_stack ([xs , ys ]) for xs , ys , zs in xyslist ]
308
307
LineCollection .set_segments (self , segments_2d )
309
308
@@ -316,7 +315,7 @@ def do_3d_projection(self, renderer):
316
315
@artist .allow_rasterization
317
316
def draw (self , renderer , project = False ):
318
317
if project :
319
- self .do_3d_projection (renderer )
318
+ self .do_3d_projection ()
320
319
super ().draw (renderer )
321
320
322
321
@@ -348,10 +347,12 @@ def get_path(self):
348
347
def get_facecolor (self ):
349
348
return self ._facecolor2d
350
349
351
- def do_3d_projection (self , renderer ):
350
+ @cbook ._delete_parameter ('3.4' , 'renderer' )
351
+ def do_3d_projection (self , renderer = None ):
352
352
s = self ._segment3d
353
353
xs , ys , zs = zip (* s )
354
- vxs , vys , vzs , vis = proj3d .proj_transform_clip (xs , ys , zs , renderer .M )
354
+ vxs , vys , vzs , vis = proj3d .proj_transform_clip (xs , ys , zs ,
355
+ self .axes .M )
355
356
self ._path2d = mpath .Path (np .column_stack ([vxs , vys ]))
356
357
# FIXME: coloring
357
358
self ._facecolor2d = self ._facecolor3d
@@ -372,10 +373,12 @@ def set_3d_properties(self, path, zs=0, zdir='z'):
372
373
Patch3D .set_3d_properties (self , path .vertices , zs = zs , zdir = zdir )
373
374
self ._code3d = path .codes
374
375
375
- def do_3d_projection (self , renderer ):
376
+ @cbook ._delete_parameter ('3.4' , 'renderer' )
377
+ def do_3d_projection (self , renderer = None ):
376
378
s = self ._segment3d
377
379
xs , ys , zs = zip (* s )
378
- vxs , vys , vzs , vis = proj3d .proj_transform_clip (xs , ys , zs , renderer .M )
380
+ vxs , vys , vzs , vis = proj3d .proj_transform_clip (xs , ys , zs ,
381
+ self .axes .M )
379
382
self ._path2d = mpath .Path (np .column_stack ([vxs , vys ]), self ._code3d )
380
383
# FIXME: coloring
381
384
self ._facecolor2d = self ._facecolor3d
@@ -481,9 +484,11 @@ def set_3d_properties(self, zs, zdir):
481
484
self ._edgecolor3d = self .get_edgecolor ()
482
485
self .stale = True
483
486
484
- def do_3d_projection (self , renderer ):
487
+ @cbook ._delete_parameter ('3.4' , 'renderer' )
488
+ def do_3d_projection (self , renderer = None ):
485
489
xs , ys , zs = self ._offsets3d
486
- vxs , vys , vzs , vis = proj3d .proj_transform_clip (xs , ys , zs , renderer .M )
490
+ vxs , vys , vzs , vis = proj3d .proj_transform_clip (xs , ys , zs ,
491
+ self .axes .M )
487
492
488
493
fcs = (_zalpha (self ._facecolor3d , vzs ) if self ._depthshade else
489
494
self ._facecolor3d )
@@ -585,9 +590,11 @@ def set_linewidth(self, lw):
585
590
super ().set_linewidth (lw )
586
591
self ._linewidth3d = self .get_linewidth ()
587
592
588
- def do_3d_projection (self , renderer ):
593
+ @cbook ._delete_parameter ('3.4' , 'renderer' )
594
+ def do_3d_projection (self , renderer = None ):
589
595
xs , ys , zs = self ._offsets3d
590
- vxs , vys , vzs , vis = proj3d .proj_transform_clip (xs , ys , zs , renderer .M )
596
+ vxs , vys , vzs , vis = proj3d .proj_transform_clip (xs , ys , zs ,
597
+ self .axes .M )
591
598
592
599
fcs = (_zalpha (self ._facecolor3d , vzs ) if self ._depthshade else
593
600
self ._facecolor3d )
@@ -760,7 +767,8 @@ def set_sort_zpos(self, val):
760
767
self ._sort_zpos = val
761
768
self .stale = True
762
769
763
- def do_3d_projection (self , renderer ):
770
+ @cbook ._delete_parameter ('3.4' , 'renderer' )
771
+ def do_3d_projection (self , renderer = None ):
764
772
"""
765
773
Perform the 3D projection for this object.
766
774
"""
@@ -769,7 +777,7 @@ def do_3d_projection(self, renderer):
769
777
self .update_scalarmappable ()
770
778
self ._facecolors3d = self ._facecolors
771
779
772
- txs , tys , tzs = proj3d ._proj_transform_vec (self ._vec , renderer .M )
780
+ txs , tys , tzs = proj3d ._proj_transform_vec (self ._vec , self . axes .M )
773
781
xyzlist = [(txs [sl ], tys [sl ], tzs [sl ]) for sl in self ._segslices ]
774
782
775
783
# This extra fuss is to re-order face / edge colors
@@ -805,7 +813,7 @@ def do_3d_projection(self, renderer):
805
813
# Return zorder value
806
814
if self ._sort_zpos is not None :
807
815
zvec = np .array ([[0 ], [0 ], [self ._sort_zpos ], [1 ]])
808
- ztrans = proj3d ._proj_transform_vec (zvec , renderer .M )
816
+ ztrans = proj3d ._proj_transform_vec (zvec , self . axes .M )
809
817
return ztrans [2 ][0 ]
810
818
elif tzs .size > 0 :
811
819
# FIXME: Some results still don't look quite right.
@@ -892,13 +900,6 @@ def rotate_axes(xs, ys, zs, zdir):
892
900
return xs , ys , zs
893
901
894
902
895
- def _get_colors (c , num ):
896
- """Stretch the color argument to provide the required number *num*."""
897
- return np .broadcast_to (
898
- mcolors .to_rgba_array (c ) if len (c ) else [0 , 0 , 0 , 0 ],
899
- (num , 4 ))
900
-
901
-
902
903
def _zalpha (colors , zs ):
903
904
"""Modify the alphas of the color list according to depth."""
904
905
# FIXME: This only works well if the points for *zs* are well-spaced
0 commit comments