def status_init(self): super(SignatureShowOption, self).init() self.build_gui() try: with open(self.signature_file, 'r') as f: file_content = json.loads(f.read()) except (IOError, ValueError): file_content = {} for k, v in file_content.iteritems(): print k states = v["states"] for n, pos in states.iteritems(): if n.lower() == "off": continue self.power_scatter.addPoints( brush=qt.brush(255, 255, 255, 255), pos=[pos], size=10) text = qt.text(k+'/'+n, anchor=(0.5, 0)) text.setPos(pos[0], pos[1]-0.5) self.power_plot.addItem(text) self.status = self.STATUS.WAIT
def plot_clusterized(self, predictions): self.power_scatter.setData( self.real_power_data, self.reac_power_data, brush=qt.mk_colored_brushes(100, predictions), size=10) self.power_scatter.addPoints(pos=self.prototypes, brush=qt.brush(255, 255, 255, 255), size=7)
def status_collecting(self): data = self.unpack_line(self.monitor.stdout.readline()) new_real = data[3] new_reac = data[4] v_real = new_real - self.curr_real v_reac = new_reac - self.curr_reac print "C: (%.3f, %.3f) N: (%.3f, %.3f) V: (%.3f, %.3f)" % ( self.curr_real, self.curr_reac, new_real, new_reac, v_real, v_reac) # if self.new_transition(new_real, new_reac): if self.process_new_transition(v_real, v_reac): self.curr_real = new_real self.curr_reac = new_reac self.update_status_text() self.update_classifier() print '' # Plot power scatter self.real_power_data.append(new_real) self.reac_power_data.append(new_reac) l = len(self.real_power_data) self.power_scatter.setData( self.real_power_data, self.reac_power_data, brush=self.power_scatter_brushes[-l:]) self.power_plot.setXRange(0, max(self.real_power_data)) self.power_plot.setYRange(0, max(self.reac_power_data)) # Plot signature scatter sign_real, sign_reac = zip(*self.classifier_instances) min_real, max_real = min(sign_real), max(sign_real) min_reac, max_reac = min(sign_reac), max(sign_reac) min_real = min(min_real, v_real) max_real = max(max_real, v_real) min_reac = min(min_reac, v_reac) max_reac = max(max_reac, v_reac) self.sign_plot.clear() self.sign_plot.addItem(self.sign_scatter) self.sign_scatter.setData( pos=self.classifier_instances, brush=qt.brush(255, 255, 255, 255), size=5) for text in self.classifier_texts: self.sign_plot.addItem(text) self.sign_scatter.addPoints(pos=[[v_real, v_reac]], brush=qt.brush(255, 0, 0, 255), size=5) self.sign_plot.setXRange(min_real, max_real) self.sign_plot.setYRange(min_reac, max_reac)