def _graph_linear_j(self, x, y, r, reg, refresh): g = self.graph if not isinstance(g, RegressionGraph): g = RegressionGraph( container_dict={'bgcolor': self.plotter_options.bgcolor}) self.graph = g po = self.plotter_options g.clear() plot = g.new_plot(padding=po.get_paddings()) if po.model_kind == WEIGHTED_MEAN_1D: fit = 'weighted mean' else: fit = po.least_squares_fit _, scatter, line = g.new_series(x=reg.xs, y=reg.ys, yerror=reg.yserr, fit=fit) ebo = ErrorBarOverlay(component=scatter, orientation='y') scatter.underlays.append(ebo) scatter.error_bars = ebo add_inspector(scatter, self._additional_info) add_axes_tools(g, plot) g.set_x_title(po.one_d_axis) g.set_y_title('J') g.add_statistics() miy = 100 may = -1 if self._individual_analyses_enabled: sel = [ i for i, (a, x, y, e) in enumerate(zip(*self._analyses)) if a.is_omitted() ] # plot the individual analyses iscatter, iys = self._graph_individual_analyses(fit=None, add_tools=False) miy = min(iys) may = max(iys) # set metadata last because it will trigger a refresh self.suppress_metadata_change = True iscatter.index.metadata['selections'] = sel self.suppress_metadata_change = False g.set_y_limits(min_=miy, max_=may, pad='0.1') g.set_x_limits(pad='0.1') g.refresh() fys = line.value.get_data() self.max_j = fys.max() self.min_j = fys.min()