@@ -147,17 +147,6 @@ def compute_panel(self, data, scales):
147147 params = self .params
148148 maxwidth = params ["maxwidth" ]
149149 random_state = params ["random_state" ]
150- fuzz = 1e-8
151- y_dim = scales .y .dimension ()
152- y_dim_fuzzed = (y_dim [0 ] - fuzz , y_dim [1 ] + fuzz )
153-
154- if params ["binwidth" ] is not None :
155- params ["bins" ] = breaks_from_binwidth (
156- y_dim_fuzzed , params ["binwidth" ]
157- )
158- else :
159- params ["bins" ] = breaks_from_bins (y_dim_fuzzed , params ["bins" ])
160-
161150 data = super ().compute_panel (data , scales )
162151
163152 if not len (data ):
@@ -203,8 +192,8 @@ def compute_panel(self, data, scales):
203192 return data
204193
205194 def compute_group (self , data , scales ):
195+ binwidth = self .params ["binwidth" ]
206196 maxwidth = self .params ["maxwidth" ]
207- bins = self .params ["bins" ]
208197 bin_limit = self .params ["bin_limit" ]
209198 weight = None
210199 y = data ["y" ]
@@ -233,8 +222,16 @@ def compute_group(self, data, scales):
233222 data ["density" ] = densf (y )
234223 data ["scaled" ] = data ["density" ] / dens ["density" ].max ()
235224 else :
225+ y_dim = scales .y .dimension ()
226+ fuzz = 1e-8
227+ y_dim_fuzzed = (y_dim [0 ] - fuzz , y_dim [1 ] + fuzz )
228+ if binwidth is not None :
229+ bins = breaks_from_binwidth (y_dim_fuzzed , binwidth )
230+ else :
231+ bins = breaks_from_bins (y_dim_fuzzed , self .params ["bins" ])
232+
236233 # bin based estimation
237- bin_index = pd .cut (y , bins , include_lowest = True , labels = False )
234+ bin_index = pd .cut (y , bins , include_lowest = True , labels = False ) # pyright: ignore[reportCallIssue,reportArgumentType]
238235 data ["density" ] = (
239236 pd .Series (bin_index )
240237 .groupby (bin_index )
0 commit comments