How can i fix multiple colorbar occurrence in my plot uisng with canvas

Here in my plot i am getting multiple colorbar's,when i called the method each time one by one colorbar will be added to my plot,so can you please tell me how to solve this problem.In this i am using cb.remove()it will be work fine but my problem is first time its doesn't show any colorbar. my code is given bellow:

def update_figure(self):

        global count

        def make_colormap(seq):
            seq = [(None,) * 3, 0.0] + list(seq) + [1.0, (None,) * 3]
            cdict = {'red': [], 'green': [], 'blue': []}
            for i, item in enumerate(seq):
                if isinstance(item, float):
                    r1, g1, b1 = seq[i - 1]
                    r2, g2, b2 = seq[i + 1]
                    cdict['red'].append([item, r1, r2])
                    cdict['green'].append([item, g1, g2])
                    cdict['blue'].append([item, b1, b2])

            return mcolors.LinearSegmentedColormap('CustomMap', cdict)
        data = pd.read_csv(fileName, names = ['x','y','z','colour'])
        var = [0, 3, 6]

        data1 = data[data.y==var[count]]
        c = mcolors.ColorConverter().to_rgb
        fraction = 0;
        colorMap = []
        rows = []
        with open( 'colorMap2.csv' , 'rb') as f:
            reader = csv.reader(f)
            for ri , row in enumerate(reader):
                rows.append(row)

        for ri , row in enumerate(rows):
            if ri >0:
                print int(row[0])/255.0 ,int( row[1])/255.0 , int(row[2])/255.0 , int(row[3])/255.0 , int(row[4])/255.0 , int(row[5])/255.0
                fraction += float(row[6])/100.0
                if(ri == len(rows)-1):
                    colorMap += [(int(row[0])/255.0 ,int( row[1])/255.0 , int(row[2])/255.0 ) , ( int(row[3])/255.0 , int(row[4])/255.0 , int(row[5])/255.0)]
                    colorMap += [(int(row[0])/255.0 ,int( row[1])/255.0 , int(row[2])/255.0 )]
                else:

                    colorMap += [(int(row[0])/255.0 ,int( row[1])/255.0 , int(row[2])/255.0 ) , ( int(row[3])/255.0 , int(row[4])/255.0 , int(row[5])/255.0) , fraction]
        rvb = make_colormap(colorMap)

        self.plot = self.axes.tricontourf(data1.x,data1.z,data1.colour,q, cmap = rvb )
        self.axes.set(xlabel='X-Range', ylabel='Depth')

        ax = self.figure.gca()                            # get the axis
        ax.set_ylim(ax.get_ylim()[::-1])        # invert the axis
        ax.xaxis.tick_bottom()                     # and move the X-Axis
        ax.yaxis.tick_left()
        cb=self.figure.colorbar(self.plot)
        self.draw()
        cb.remove()
def next2D(self):
        global count
        count = count + 1
        self.canvas.update_figure()