@@ -445,9 +445,7 @@ def __init__(self, subject_id, hemi, surf, title=None,
445
445
self .silhouette = True
446
446
else :
447
447
self .silhouette = silhouette
448
- # for now only one color bar can be added
449
- # since it is the same for all figures
450
- self ._colorbar_added = False
448
+ self ._scalar_bar = None
451
449
# for now only one time label can be added
452
450
# since it is the same for all figures
453
451
self ._time_label_added = False
@@ -692,14 +690,12 @@ def _clean(self):
692
690
# Qt LeaveEvent requires _Iren so we use _FakeIren instead of None
693
691
# to resolve the ref to vtkGenericRenderWindowInteractor
694
692
self .plotter ._Iren = _FakeIren ()
695
- if getattr (self .plotter , 'scalar_bar' , None ) is not None :
696
- self .plotter .scalar_bar = None
697
693
if getattr (self .plotter , 'picker' , None ) is not None :
698
694
self .plotter .picker = None
699
695
# XXX end PyVista
700
696
for key in ('plotter' , 'window' , 'dock' , 'tool_bar' , 'menu_bar' ,
701
697
'status_bar' , 'interactor' , 'mpl_canvas' , 'time_actor' ,
702
- 'picked_renderer' , 'act_data_smooth' ,
698
+ 'picked_renderer' , 'act_data_smooth' , '_scalar_bar' ,
703
699
'actions' , 'widgets' , 'geo' , '_data' ):
704
700
setattr (self , key , None )
705
701
@@ -824,12 +820,11 @@ def _configure_time_label(self):
824
820
self .time_actor .GetTextProperty ().BoldOn ()
825
821
826
822
def _configure_scalar_bar (self ):
827
- if self ._colorbar_added :
828
- scalar_bar = self .plotter .scalar_bar
829
- scalar_bar .SetOrientationToVertical ()
830
- scalar_bar .SetHeight (0.6 )
831
- scalar_bar .SetWidth (0.05 )
832
- scalar_bar .SetPosition (0.02 , 0.2 )
823
+ if self ._scalar_bar is not None :
824
+ self ._scalar_bar .SetOrientationToVertical ()
825
+ self ._scalar_bar .SetHeight (0.6 )
826
+ self ._scalar_bar .SetWidth (0.05 )
827
+ self ._scalar_bar .SetPosition (0.02 , 0.2 )
833
828
834
829
def _configure_dock_time_widget (self , layout = None ):
835
830
len_time = len (self ._data ['time' ]) - 1
@@ -1947,12 +1942,11 @@ def add_data(self, array, fmin=None, fmid=None, fmax=None,
1947
1942
)
1948
1943
self ._data ['time_actor' ] = time_actor
1949
1944
self ._time_label_added = True
1950
- if colorbar and not self ._colorbar_added and do :
1945
+ if colorbar and self ._scalar_bar is None and do :
1951
1946
kwargs = dict (source = actor , n_labels = 8 , color = self ._fg_color ,
1952
1947
bgcolor = self ._brain_color [:3 ])
1953
1948
kwargs .update (colorbar_kwargs or {})
1954
- self ._renderer .scalarbar (** kwargs )
1955
- self ._colorbar_added = True
1949
+ self ._scalar_bar = self ._renderer .scalarbar (** kwargs )
1956
1950
self ._renderer .set_camera (** views_dicts [hemi ][v ])
1957
1951
1958
1952
# 4) update the scalar bar and opacity
@@ -2650,9 +2644,6 @@ def update_lut(self, fmin=None, fmid=None, fmax=None, alpha=None):
2650
2644
# update our values
2651
2645
rng = self ._cmap_range
2652
2646
ctable = self ._data ['ctable' ]
2653
- # in testing, no plotter; if colorbar=False, no scalar_bar
2654
- scalar_bar = getattr (
2655
- getattr (self ._renderer , 'plotter' , None ), 'scalar_bar' , None )
2656
2647
for hemi in ['lh' , 'rh' , 'vol' ]:
2657
2648
hemi_data = self ._data .get (hemi )
2658
2649
if hemi_data is not None :
@@ -2663,25 +2654,22 @@ def update_lut(self, fmin=None, fmid=None, fmax=None, alpha=None):
2663
2654
opacity = alpha ,
2664
2655
rng = rng )
2665
2656
self ._renderer ._set_colormap_range (
2666
- mesh ._actor , ctable , scalar_bar , rng ,
2657
+ mesh ._actor , ctable , self . _scalar_bar , rng ,
2667
2658
self ._brain_color )
2668
- scalar_bar = None
2669
2659
2670
2660
grid_volume_pos = hemi_data .get ('grid_volume_pos' )
2671
2661
grid_volume_neg = hemi_data .get ('grid_volume_neg' )
2672
2662
for grid_volume in (grid_volume_pos , grid_volume_neg ):
2673
2663
if grid_volume is not None :
2674
2664
self ._renderer ._set_volume_range (
2675
2665
grid_volume , ctable , hemi_data ['alpha' ],
2676
- scalar_bar , rng )
2677
- scalar_bar = None
2666
+ self ._scalar_bar , rng )
2678
2667
2679
2668
glyph_actor = hemi_data .get ('glyph_actor' )
2680
2669
if glyph_actor is not None :
2681
2670
for glyph_actor_ in glyph_actor :
2682
2671
self ._renderer ._set_colormap_range (
2683
- glyph_actor_ , ctable , scalar_bar , rng )
2684
- scalar_bar = None
2672
+ glyph_actor_ , ctable , self ._scalar_bar , rng )
2685
2673
if self .time_viewer :
2686
2674
with self ._no_lut_update (f'update_lut { args } ' ):
2687
2675
for key in ('fmin' , 'fmid' , 'fmax' ):
0 commit comments