1
- from typing import List , Tuple , Union
1
+ from typing import List , Optional , Tuple
2
2
3
3
import matplotlib .colors as mcolor
4
4
import napari
@@ -22,21 +22,21 @@ class ScatterBaseWidget(NapariMPLWidget):
22
22
# the scatter is plotted as a 2dhist
23
23
_threshold_to_switch_to_histogram = 500
24
24
25
- def __init__ (
26
- self ,
27
- napari_viewer : napari .viewer .Viewer ,
28
- ):
25
+ def __init__ (self , napari_viewer : napari .viewer .Viewer ):
29
26
super ().__init__ (napari_viewer )
30
27
31
28
self .axes = self .canvas .figure .subplots ()
32
29
self .update_layers (None )
33
30
34
31
def clear (self ) -> None :
32
+ """
33
+ Clear the axes.
34
+ """
35
35
self .axes .clear ()
36
36
37
37
def draw (self ) -> None :
38
38
"""
39
- Clear the axes and scatter the currently selected layers.
39
+ Scatter the currently selected layers.
40
40
"""
41
41
data , x_axis_name , y_axis_name = self ._get_data ()
42
42
@@ -86,14 +86,6 @@ class ScatterWidget(ScatterBaseWidget):
86
86
87
87
n_layers_input = 2
88
88
89
- def __init__ (
90
- self ,
91
- napari_viewer : napari .viewer .Viewer ,
92
- ):
93
- super ().__init__ (
94
- napari_viewer ,
95
- )
96
-
97
89
def _get_data (self ) -> Tuple [List [np .ndarray ], str , str ]:
98
90
"""Get the plot data.
99
91
@@ -116,42 +108,34 @@ def _get_data(self) -> Tuple[List[np.ndarray], str, str]:
116
108
class FeaturesScatterWidget (ScatterBaseWidget ):
117
109
n_layers_input = 1
118
110
119
- def __init__ (
120
- self ,
121
- napari_viewer : napari .viewer .Viewer ,
122
- key_selection_gui : bool = True ,
123
- ):
124
- self ._key_selection_widget = None
125
- super ().__init__ (
126
- napari_viewer ,
111
+ def __init__ (self , napari_viewer : napari .viewer .Viewer ):
112
+ super ().__init__ (napari_viewer )
113
+ self ._key_selection_widget = magicgui (
114
+ self ._set_axis_keys ,
115
+ x_axis_key = {"choices" : self ._get_valid_axis_keys },
116
+ y_axis_key = {"choices" : self ._get_valid_axis_keys },
117
+ call_button = "plot" ,
127
118
)
128
119
129
- if key_selection_gui is True :
130
- self ._key_selection_widget = magicgui (
131
- self ._set_axis_keys ,
132
- x_axis_key = {"choices" : self ._get_valid_axis_keys },
133
- y_axis_key = {"choices" : self ._get_valid_axis_keys },
134
- call_button = "plot" ,
135
- )
136
- self .layout ().addWidget (self ._key_selection_widget .native )
120
+ self .layout ().addWidget (self ._key_selection_widget .native )
137
121
138
122
@property
139
- def x_axis_key (self ) -> Union [ None , str ]:
123
+ def x_axis_key (self ) -> Optional [ str ]:
140
124
"""Key to access x axis data from the FeaturesTable"""
141
125
return self ._x_axis_key
142
126
143
127
@x_axis_key .setter
144
- def x_axis_key (self , key : Union [ None , str ]):
128
+ def x_axis_key (self , key : Optional [ str ]):
145
129
self ._x_axis_key = key
146
130
self ._draw ()
147
131
148
132
@property
149
- def y_axis_key (self ) -> Union [ None , str ]:
133
+ def y_axis_key (self ) -> Optional [ str ]:
150
134
"""Key to access y axis data from the FeaturesTable"""
151
135
return self ._y_axis_key
152
136
153
137
@y_axis_key .setter
154
- def y_axis_key (self , key : Union [ None , str ]):
138
+ def y_axis_key (self , key : Optional [ str ]):
155
139
self ._y_axis_key = key
156
140
self ._draw ()
157
141
@@ -214,10 +198,11 @@ def _get_data(self) -> Tuple[List[np.ndarray], str, str]:
214
198
return data , x_axis_name , y_axis_name
215
199
216
200
def _on_update_layers (self ) -> None :
217
- """This is called when the layer selection changes
218
- by self.update_layers().
219
201
"""
220
- if self ._key_selection_widget is not None :
202
+ This is called when the layer selection changes by
203
+ ``self.update_layers()``.
204
+ """
205
+ if hasattr (self , "_key_selection_widget" ):
221
206
self ._key_selection_widget .reset_choices ()
222
207
223
208
# reset the axis keys
0 commit comments