Update figure with Python/Matplotlib - interactive plot

I'm trying to create an interactive figure with Python/Matplotlib which simply shifts a circle to the right upon a button click. My code is partially working in that pressing the button updates the circle coordinates and shifts the circle to the right on the plot. However the old circles remain plotted, which is not what I want. I want there to only be the new, updated circle plotted on the graph.

This is what currently happens before button click:

img

and after a couple button clicks:

img

I have tried using plt.draw() but have not been very successful.

I first define my axes:

"Create Figure and plot circle Subplot"
figure1 = plt.figure()                                    # Main Figure to contain all subplots and button panel
CircSubplot = figure1.add_subplot(1,1,1, aspect= 'equal')

# -- Axes with centred spines --
CircSubplot.spines['left'].set_position('center')
CircSubplot.spines['right'].set_color('none')
CircSubplot.spines['bottom'].set_position('center')
CircSubplot.spines['top'].set_color('none')
CircSubplot.spines['left'] #.set_smart_bounds(True)
CircSubplot.spines['bottom'] #.set_smart_bounds(True)
CircSubplot.xaxis.set_ticks_position('bottom')
CircSubplot.yaxis.set_ticks_position('left')

# -- Sets scale for axes --
axesScaleFactor = 3         # Sets the scale of the axis wrt to circle radius
axCircSubplot = plt.gca()   # get current axes object
axCircSubplot.set_xlim([-circRadius*axesScaleFactor,circRadius*axesScaleFactor])    #set x-axes range
axCircSubplot.set_ylim([-circRadius*axesScaleFactor,circRadius*axesScaleFactor])    #set y-axes range 

and then later I define a callback function which runs when the button is pressed:

class Index(object):
    xinc = 0

    def right(self, event):
        self.xinc += 1
        i = self.xinc
        circCentre = [i,0] #Increments circle x co-ordinates by 1
        UpdatedCircVec = CircleVector(circCentre[0],circCentre[1],circRadius,circPoints)     #CircleVector function returns a 2D array containing X and Y co-ordinates for the circle 
        Upper = CircUpper(UpdatedCircVec)          #Function splits the CircleVector into portions for upper circle segment
        Lower = CircLower(UpdatedCircVec)          #Function splits the CircleVector into portions for lower circle segment
        CircSubplot.plot(Upper[0],Upper[1],'b')     #Plot upper circle segment
        CircSubplot.plot(Lower[0],Lower[1],'b')     #Plot lower circle segment
        plt.draw()

Any help would be appreciated.