2014-09-23 2 views
6

matplotlib의 텍스트 상자를 잘 만들 수 있습니다. 하지만 렌더링 된 줄거리에서 그들을 제거하는 방법을 모르겠다? 텍스트 상자를 그린 후에 figure.text.clear() 또는 figure.text (visible = False)가없는 것 같습니다. 어떻게 이뤄지나요? 전설과는 달리, 당신은 그들을 드래그 할 수없는 것처럼 보입니다.이전에 그려진 Matplotlib 텍스트 상자를 지우려면 어떻게해야합니까?

+0

'figure.text.remove()'? – 101

답변

11

텍스트 상자는 아티스트입니다. 따라서에 대한 참조를 유지하면 으로 많은 작업을 수행 할 수 있습니다. 당신은하지만, 참조를 분실 한 경우 따라서, 대신

fig.text(0, 0, 'My text') 

의 플로팅 코드, 당신은 모든 텍스트 개체가 texts 속성에서 찾을 수 있습니다,

textvar = fig.text(0, 0, 'My text') 

을 수행 할 수 있습니다

fig.texts # is a list of Text objects 

버전 1.3.1에서 textvar.remove()을 수행하면 1.4로 수정 된 NotImplementedError가 생성됩니다. 그러나 가시성을 False로 설정하면 어느 정도이를 해결할 수 있습니다.

for txt in fig.texts: 
    txt.set_visible(False) 

은 모든 텍스트 상자를 사라지게합니다.

+0

1.4에서 오류가 발생합니까? 나는 우리가 그것을 고치겠다고 맹세 할 수 있었다. ... – tacaswell

+0

매력처럼 작동한다 - –

+0

@tcaswell 나는 1.3.1과 함께 가장 최근의 버전을 체크하는 것을 생각하지 않았다. 1.4에서 수정되었습니다. – Ajean

관련 문제