Matplotlib remove patches from figure

interactive, matplotlib, python

Solution

Try this:

def reset(event):
    circle1.remove()

Also maybe you prefer:

def reset(event):
    circle1.set_visible(False)

Problem

In my case, I want to remove one of the circle when clicking reset button. However, ax.clear() would clear all circles on the current figure. Can someone tell me how to remove only part of the patches? ``` import matplotlib.patches as patches import matplotlib.pyplot as plt from matplotlib.widgets import Button fig = plt.figure() ax = fig.add_subplot(111) circle1 = patches.Circle((0.3, 0.3), 0.03, fc='r', alpha=0.5) circle2 = patches.Circle((0.4, 0.3), 0.03, fc='r', alpha=0.5) button = Button(plt.axes([0.8, 0.025, 0.1, 0.04]), 'Reset', color='g', hovercolor='0.975') ax.add_patch(circle1) ax.add_patch(circle2) def reset(event): '''what to do here''' ax.clear() button.on_clicked(reset) plt.show() ```

Original source