Example #1
0
 def FindBinWidth(self):
     dataMin = int(SummaryCalcs.minimum(self.data))
     dataMax = int(SummaryCalcs.maximum(self.data))
     dataRange = dataMax - dataMin
     binWidth = 1
     if dataRange <= 10:
         maxBins = 3
         binInc = 1
     else:
         maxBins = 10
         binInc = 5
     numToDiv = int(dataRange/binWidth)
     while numToDiv > maxBins:
         binWidth += binInc
         numToDiv = int(dataRange/binWidth)
     self.binWidth = binWidth
     #generate bin array
     binArray = []
     binVal = 0
     while (len(binArray) == 0) or (binArray[-1] <= dataMax):
         if len(binArray) == 0:
             if binVal <= dataMin < binVal+binWidth:
                 binArray.append(binVal)
                 binVal += binWidth
             else:
                 binVal += binWidth
         else:
             binArray.append(binVal)
             binVal += binWidth
     self.binArray = binArray
Example #2
0
 def reDraw(self, newData, newData2=[]):
     self.data = newData
     if len(newData2) > 0:
         self.data2 = newData2
         self.doubleBox = True
         self.min2 = SummaryCalcs.minimum(self.data2)
         self.q12 = SummaryCalcs.quar1(self.data2)
         self.mean2 = SummaryCalcs.mean(self.data2)
         self.q32 = SummaryCalcs.quar3(self.data2)
         self.max2 = SummaryCalcs.maximum(self.data2)
     else:
         self.doubleBox = False
     self.min = SummaryCalcs.minimum(self.data)
     self.q1 = SummaryCalcs.quar1(self.data)
     self.mean = SummaryCalcs.mean(self.data)
     self.q3 = SummaryCalcs.quar3(self.data)
     self.max = SummaryCalcs.maximum(self.data)
     self.scale = self.calcScale()
     if self.doubleBox:
         if self.min - self.min2 > 0:
             self.lower = 1
         else:
             self.lower = 2
         if self.max - self.max2 > 0:
             self.higher = 1
         else:
             self.higher = 2
     self.parent.delete("all")
     self.draw_plot()
Example #3
0
 def calcScale(self, scale):
     if scale == 'x':
         Xrange = SummaryCalcs.maximum(self.dataX)
         if Xrange == 0:
             return 1
         return (self.master_size[0]-self.bufferZone[0]*2)/Xrange
     else:
         Yrange = SummaryCalcs.maximum(self.dataY)
         if Yrange == 0:
             return 1
         return (self.master_size[1]-self.bufferZone[1]*2)/Yrange
Example #4
0
    def LineOfBestFit(self):
        xBar = SummaryCalcs.mean(self.dataX)
        yBar = SummaryCalcs.mean(self.dataY)
        bigEQtop = 0
        bigEQbottom = 0
        for i in range(0, len(self.dataX)):
            xEQ = self.dataX[i] - xBar
            bigEQtop += (xEQ * (self.dataY[i] - yBar))
            bigEQbottom += (xEQ * xEQ)
        self.LBslope = bigEQtop / bigEQbottom
        self.Bval = yBar - (self.LBslope * xBar)

        print "y = " + str(round(self.LBslope,3)) + "x+" + str(round(self.Bval,3))
        self.drawLB()
Example #5
0
 def calcScale(self, axis):
     if axis == 'x':
         masterSizeXwoBuffer = self.master_size[0] - self.bufferZone[0]*2
         scaleX = masterSizeXwoBuffer / len(self.binArray)
         return scaleX
     else:
         masterSizeYwoBuffer = self.master_size[1] - self.bufferZone[1]*2
         scaleY = masterSizeYwoBuffer / SummaryCalcs.maximum(self.dataCounted)
         return scaleY
Example #6
0
    def __init__(self, master, data, data2=[], master_size=[640, 640], color="black", color2="black", axisColor="black", bufferZone=[20, 20]):
        self.parent = master
        self.master_size = master_size
        self.color = color
        self.color2 = color2
        self.axisColor = axisColor
        self.bufferZone = bufferZone
        self.bufferZone2 = [bufferZone[0], bufferZone[1]+70]
        self.data = data
        if len(data2) > 0:
            self.data2 = data2
            self.doubleBox = True
            self.min2 = SummaryCalcs.minimum(self.data2)
            self.q12 = SummaryCalcs.quar1(self.data2)
            self.mean2 = SummaryCalcs.mean(self.data2)
            self.q32 = SummaryCalcs.quar3(self.data2)
            self.max2 = SummaryCalcs.maximum(self.data2)
        else:
            self.doubleBox = False
        self.min = SummaryCalcs.minimum(self.data)
        self.q1 = SummaryCalcs.quar1(self.data)
        self.mean = SummaryCalcs.mean(self.data)
        self.q3 = SummaryCalcs.quar3(self.data)
        self.max = SummaryCalcs.maximum(self.data)
        self.scale = self.calcScale()
        if self.doubleBox:
            if self.min - self.min2 > 0:
                self.lower = 1
            else:
                self.lower = 2
            if self.max - self.max2 > 0:
                self.higher = 1
            else:
                self.higher = 2

        self.draw_plot()