def test_decimal_binnings(self): """test for consistency with binning from discretize""" data = np.array([1, 2]) bins = decimal_binnings(data)[0].thresholds binned = BinnedContinuousPalette.from_palette(self.palette, bins) colors = binned.values_to_colors(data) assert not np.array_equal(colors[0], colors[1])
def recompute_binnings(self): if self.is_valid and self.var.is_continuous: # binning is computed on valid var data, ignoring any cvar nans column = self.data.get_column_view(self.var)[0].astype(float) if np.any(np.isfinite(column)): if self.var.is_time: self.binnings = time_binnings(column, min_unique=5) else: self.binnings = decimal_binnings( column, min_width=self.min_var_resolution(self.var), add_unique=10, min_unique=5) fm = QFontMetrics(self.font()) width = max( fm.size(Qt.TextSingleLine, self._short_text(binning.width_label)).width() for binning in self.binnings) self.bin_width_label.setFixedWidth(width) max_bins = len(self.binnings) - 1 else: self.binnings = [] max_bins = 0 self.controls.number_of_bins.setMaximum(max_bins) self.number_of_bins = min( max_bins, self._user_var_bins.get(self.var, self.number_of_bins)) self._set_bin_width_slider_label()
def recompute_binnings(self): if self.is_mode(): return if self.is_time(): self.binnings = time_binnings(self.agg_data, min_unique=3, min_bins=3, max_bins=15) else: self.binnings = decimal_binnings(self.agg_data, min_unique=3, min_bins=3, max_bins=15) max_bins = len(self.binnings) - 1 self.controls.binning_index.setMaximum(max_bins) self.binning_index = min(max_bins, self.binning_index)
def recompute_binnings(self): if self.is_valid and self.var.is_continuous: # binning is computed on valid var data, ignoring any cvar nans column = self.data.get_column_view(self.var)[0].astype(float) if np.any(np.isfinite(column)): if self.var.is_time: self.binnings = time_binnings(column, min_unique=5) self.bin_width_label.setFixedWidth(45) else: self.binnings = decimal_binnings( column, min_width=self.min_var_resolution(self.var), add_unique=10, min_unique=5) self.bin_width_label.setFixedWidth(35) max_bins = len(self.binnings) - 1 else: self.binnings = [] max_bins = 0 self.controls.number_of_bins.setMaximum(max_bins) self.number_of_bins = min( max_bins, self._user_var_bins.get(self.var, self.number_of_bins)) self._set_bin_width_slider_label()
def recompute_binnings(self): self.binnings = [] self.bin_widths = [] max_bins = 0 if self.is_valid and self.var.is_continuous: # binning is computed on valid var data, ignoring any cvar nans column = self.data.get_column_view(self.var)[0].astype(float) if np.any(np.isfinite(column)): binnings = decimal_binnings(column, min_width=self.min_var_resolution( self.var), add_unique=10, min_unique=5, return_defs=True)[::-1] self.binnings = [get_bins(bin) for bin in binnings] self.bin_widths = [bin.width for bin in binnings] max_bins = len(self.binnings) - 1 self.controls.number_of_bins.setMaximum(max_bins) self.number_of_bins = min( max_bins, self._user_var_bins.get(self.var, self.number_of_bins)) self._set_bin_width_slider_label()