2014-02-10 15 views
10

In meinem Fall möchte ich einen der Kreise entfernen, wenn Sie auf Reset-Taste klicken. Ax.clear() würde jedoch alle Kreise auf der aktuellen Figur löschen.Matplotlib entfernen Patches aus Abbildung

Kann mir jemand sagen, wie man nur einen Teil der Patches entfernt?

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() 

Antwort

13

Versuchen Sie folgendes:

def reset(event): 
    circle1.remove() 

auch vielleicht bevorzugen Sie:

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