2013-11-04 2 views
0

나는 시계열과 한 개 또는 여러 개의 axvspan 라인을 사용하여 일부 영역을 강조 표시하고 시계열 값과 순간을 추출하지만 버튼을 사용하여 하나 또는 모든 axvspan 행을 삭제할 수 있습니다. 내가 줄을 삭제하는 방법에 대한 몇 가지 예를 (How can I delete plot lines that are created with Mouse Over Event in Matplolib?) 보았지만 axvspan 줄과 관련된 아무것도 찾을 수 없습니다. 이 내가 axvspan 라인 (들) 귀하의 도움에 미리axvspan 라인을 삭제하려면 어떻게해야합니까?

def on_click(event): 
     global x0 
     x0 = event.xdata 

    def on_release(event): 
     global force_values 
     if force_value == "Min": 
      self.axes.axvspan(x0,event.xdata, facecolor='y', alpha=0.5) 
      get_data(frames,force_values,x0,event.xdata) 
     else: 
      self.axes.axvspan(x0,event.xdata, facecolor='r', alpha=0.5) 
      get_data(frames,force_values,x0,event.xdata) 

감사를 만들기 위해 사용하고 코드입니다. 다음 방금 추적 할 필요가

aspan = self.axes.axvspan(x0,event.xdata, facecolor='y', alpha=0.5) 
# do stuff 
aspan.remove() 
plt.draw() 

당신이 그들의 무리를 할 필요가있는 경우 : 친절 감사 이보는

답변

3

는 거의 모든 artist 객체는 축에서 제거하는 remove 멤버 함수가 그들 중 한 무리

self.aspan_list = [] 
self.aspan_list.append(self.axes.axvspan(x0,event.xdata, facecolor='y', alpha=0.5)) 
#... 
for aspan in self.aspan_list: 
    aspan.remove() 
+0

axvspan에 변수를 할당하지 않았으므로 axvspan에 해당 방법 (제거)이 없다는 오류가 표시되었습니다. 이제 마침내 내 플롯에서 마지막으로 작성한 axvspan을 삭제할 수 있습니다. 같은 줄거리에 여러 axvspan을 그릴 필요가 있기 때문에 한 번에 모두 삭제할 수있는 방법이 있는지 알고 싶습니다. 같은 코드를 사용했지만, 삭제 axvspan 버튼을 여러 번 누르면 마지막 axvspan 만 지워지고 나머지는 남겨 둡니다. 도와 줘서 고마워. 친절합니다. 아이보 – TMoover

관련 문제