def setup_graph(self, an): container = HPlotContainer() sg = StackedGraph() sg.plotcontainer.spacing = 5 sg.plotcontainer.stack_order = 'top_to_bottom' isos = an.sorted_values(reverse=False) for i, iso in enumerate(isos): sniff = iso.sniff sg.new_plot(ytitle=iso.name, xtitle='Time (s)', title='Equilibration') if sniff.xs.shape[0]: sg.new_series(sniff.offset_xs, sniff.ys, marker='circle', type='scatter') sg.set_y_limits(pad='0.1', plotid=i) bg = StackedRegressionGraph() bg.plotcontainer.spacing = 5 bg.plotcontainer.stack_order = 'top_to_bottom' for i, iso in enumerate(isos): baseline = iso.baseline bg.new_plot(ytitle=baseline.detector, xtitle='Time (s)', title='Baseline') if baseline.xs.shape[0]: bg.new_series(baseline.offset_xs, baseline.ys, color='red', type='scatter', fit=baseline.fit) bg.set_y_limits(pad='0.1', plotid=i) ig = StackedRegressionGraph() ig.plotcontainer.spacing = 5 ig.plotcontainer.stack_order = 'top_to_bottom' for i, iso in enumerate(isos): ig.new_plot(ytitle=iso.name, xtitle='Time (s)', title='Isotope') if iso.xs.shape[0]: ig.new_series(iso.offset_xs, iso.ys, color='blue', type='scatter', fit=iso.fit) ig.set_y_limits(pad='0.1', plotid=i) container.add(sg.plotcontainer) container.add(ig.plotcontainer) container.add(bg.plotcontainer) self.container = container
def show_extraction_graph(self): if not self.has_active_editor(klass=RecallEditor): return from pychron.graph.stacked_graph import StackedGraph from numpy import array import struct import base64 an = self.active_editor.analysis data = an.get_extraction_data() def extract_blob(blob): blob = base64.b64decode(blob) if blob != 'No Response': x, y = array([ struct.unpack('<ff', blob[i:i + 8]) for i in range(0, len(blob), 8) ]).T x[0] = 0 else: x, y = [], [] return x, y g = StackedGraph() g.window_title = 'Extraction Results - {}'.format(an.record_id) g.new_plot(padding=[70, 10, 10, 60]) xx, yy = extract_blob(data['request']) g.new_series(xx, yy, plotid=0) g.set_y_limits(pad='0.1') g.new_plot(padding=[70, 10, 10, 10]) xx, yy = extract_blob(data['response']) g.new_series(xx, yy, plotid=1) g.set_y_title('Temp (C)', plotid=0) g.set_x_title('Time (s)', plotid=0) g.set_y_title('% Output', plotid=1) open_view(g)
def show_extraction_graph(self): if not self.has_active_editor(klass=RecallEditor): return from pychron.graph.stacked_graph import StackedGraph from numpy import array import struct import base64 an = self.active_editor.analysis data = an.get_extraction_data() def extract_blob(blob): blob = base64.b64decode(blob) if blob != 'No Response': x, y = array([struct.unpack('<ff', blob[i:i + 8]) for i in range(0, len(blob), 8)]).T x[0] = 0 else: x, y = [], [] return x, y g = StackedGraph() g.window_title = 'Extraction Results - {}'.format(an.record_id) g.new_plot(padding=[70, 10, 10, 60]) xx, yy = extract_blob(data['request']) g.new_series(xx, yy, plotid=0) g.set_y_limits(pad='0.1') g.new_plot(padding=[70, 10, 10, 10]) xx, yy = extract_blob(data['response']) g.new_series(xx, yy, plotid=1) g.set_y_title('Temp (C)', plotid=0) g.set_x_title('Time (s)', plotid=0) g.set_y_title('% Output', plotid=1) open_view(g)
def _make_graph(self, lumens, duration): g = StackedGraph(container_dict=dict(stack_order='top_to_bottom')) g.new_plot(ytitle='Output (W)') g.new_series() g.new_plot(ytitle='Residual') g.new_series(plotid=1) g.new_plot(ytitle='Lumens', xtitle='time (s)') g.new_series(plotid=2) g.add_horizontal_rule(lumens, plotid=2) g.set_x_limits(0, duration * 1.1) return g
def _make_graph(self, lumens, duration): g = StackedGraph(container_dict=dict(stack_order="top_to_bottom")) g.new_plot(ytitle="Output (W)") g.new_series() g.new_plot(ytitle="Residual") g.new_series(plotid=1) g.new_plot(ytitle="Lumens", xtitle="time (s)") g.new_series(plotid=2) g.add_horizontal_rule(lumens, plotid=2) g.set_x_limits(0, duration * 1.1) return g
def setup_graph(self, an): container = HPlotContainer() container_dict = {'spacing': 5, 'stack_order': 'top_to_bottom'} sg = StackedGraph(container_dict=container_dict) sg.plotcontainer.spacing = 5 sg.plotcontainer.stack_order = 'top_to_bottom' isos = an.sorted_values(reverse=False) add_sniff = True sisos = [iso for iso in isos if iso.sniff.offset_xs.shape[0]] for i, iso in enumerate(sisos): sniff = iso.sniff sg.new_plot(ytitle=iso.name, xtitle='Time (s)', title='Equilibration') sg.new_series(sniff.offset_xs, sniff.ys, marker='circle', type='scatter') sg.set_y_limits(pad='0.1', plotid=i) sg.set_x_limits(min_=0, max_=max(sniff.offset_xs) * 1.05, plotid=i) bg = StackedRegressionGraph(container_dict=container_dict) add_baseline = True ig = StackedRegressionGraph(container_dict=container_dict) iisos = [iso for iso in isos if iso.offset_xs.shape[0]] baselines = [] for i, iso in enumerate(iisos): if iso.baseline.offset_xs.shape[0]: baselines.append(iso.baseline) ig.new_plot(ytitle='{}({})'.format(iso.name, iso.detector), xtitle='Time (s)', title='Isotope') ig.new_series(iso.offset_xs, iso.ys, display_filter_bounds=True, filter_outliers_dict=iso.filter_outliers_dict, color='blue', type='scatter', fit=iso.efit) ig.set_regressor(iso.regressor, i) ig.set_y_limits(pad='0.1', plotid=i) ig.set_x_limits(min_=0, max_=max(iso.offset_xs) * 1.05, plotid=i) ig.refresh() # bisos = [iso for iso in isos if iso.baseline.offset_xs.shape[0]] # plotted_baselines = [] # for i, iso in enumerate(bisos): # baseline = iso.baseline # if baseline.detector in plotted_baselines: # continue # plotted_baselines.append(baseline.detector) # for iso in bisos: for i, baseline in enumerate(baselines): bg.new_plot(ytitle=baseline.detector, xtitle='Time (s)', title='Baseline') bg.new_series(baseline.offset_xs, baseline.ys, filter_outliers_dict=baseline.filter_outliers_dict, display_filter_bounds=True, color='red', type='scatter', fit=baseline.efit) bg.set_regressor(baseline.regressor, i) bg.set_y_limits(pad='0.1', plotid=i) bg.set_x_limits(pad='0.025', plotid=i) bg.refresh() container.add(sg.plotcontainer) container.add(ig.plotcontainer) container.add(bg.plotcontainer) self.container = container