def plotRug(self, noUpdate=False): for rug in self.rugKeys: rug.detach() self.rugKeys = [] if self.master.showRug: targetClass = self.master.targetClass if self.contingency: freqhigh = [ (val, freq[targetClass]) for val, freq in self.contingency.items() if freq[targetClass] > 1e-6 ] freqlow = [(val, freq.abs - freq[targetClass]) for val, freq in self.contingency.items()] freqlow = [f for f in freqlow if f[1] > 1e-6] elif self.probDist: freqhigh = [] freqlow = self.probDist.items() else: return if freqhigh: maxf = max([f[1] for f in freqhigh]) if freqlow: maxf = max(maxf, max([f[1] for f in freqlow])) elif freqlow: maxf = max([f[1] for f in freqlow]) else: return freqfac = maxf > 1e-6 and 0.1 / maxf or 1 xData = sum(([val, val] for val, freq in freqhigh), []) + sum(([val, val] for val, freq in freqlow), []) yData = sum(([1.0, 1.0 - max(0.02, freqfac * freq)] for val, freq in freqhigh), []) + sum( ([0.04, 0.04 + max(0.02, freqfac * freq)] for val, freq in freqlow), [] ) c = UnconnectedLinesCurve("rug", xData=xData, yData=yData) c.set_auto_scale(True) c.set_y_axis(yRight) self.add_custom_curve(c) self.rugKeys.append(c) if not noUpdate: self.replot()
def plotRug(self, noUpdate = False): for rug in self.rugKeys: rug.detach() self.rugKeys = [] if self.master.showRug: targetClass = self.master.targetClass if self.contingency: freqhigh = [(val, freq[targetClass]) for val, freq in self.contingency.items() if freq[targetClass] > 1e-6] freqlow = [(val, freq.abs - freq[targetClass]) for val, freq in self.contingency.items()] freqlow = [f for f in freqlow if f[1] > 1e-6] elif self.probDist: freqhigh = [] freqlow = self.probDist.items() else: return if freqhigh: maxf = max([f[1] for f in freqhigh]) if freqlow: maxf = max(maxf, max([f[1] for f in freqlow])) elif freqlow: maxf = max([f[1] for f in freqlow]) else: return freqfac = maxf > 1e-6 and .1 / maxf or 1 xData = sum(([val, val] for val, freq in freqhigh), []) + sum(([val, val] for val, freq in freqlow), []) yData = sum(([1.0, 1.0 - max(0.02, freqfac * freq)] for val, freq in freqhigh), []) + sum(([0.04, 0.04 + max(.02, freqfac * freq)] for val, freq in freqlow), []) c = UnconnectedLinesCurve('rug', xData = xData, yData = yData) c.set_auto_scale(True) c.set_y_axis(yRight) self.add_custom_curve(c) self.rugKeys.append(c) if not noUpdate: self.replot()