2014-09-23 3 views
6

Ich kann Textfelder in Matplotlib fein machen. Aber ich sehe nicht, wie man sie aus einem gerenderten Plot entfernt? Es scheint kein figure.text.clear() oder figure.text (visible = False) zu geben, nachdem Sie ein Textfeld gezeichnet haben. Wie wird das gemacht? und im Gegensatz zu Legenden scheinen Sie nicht in der Lage zu sein, sie ziehbar zu machen?Wie können Sie ein Matplotlib-Textfeld löschen, das zuvor gezeichnet wurde?

+0

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

Antwort

11

Textfelder sind Künstler. Als solche sollten Sie in der Lage sein, viele Dinge mit ihnen zu tun , wenn Sie einen Verweis auf sie behalten. Daher wird in jedem Plotten Code, statt

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

können Sie

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

tun Wenn Sie die Verweise verloren haben, obwohl alle Textobjekte können im texts Attribut zu finden:

fig.texts # is a list of Text objects 

In Version 1.3.1 erzeugt textvar.remove() einen NotImplementedError (scheinbar in 1.4 behoben). Sie können dies jedoch bis zu einem gewissen Grad umgehen, indem Sie die Sichtbarkeit auf "Falsch" setzen.

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

werden alle Ihre Textfelder verschwinden.

+0

Erhalten Sie diesen Fehler mit 1.4? Ich hätte schwören können, dass wir das repariert haben ... – tacaswell

+0

Funktioniert wie ein Zauber - ty –

+0

@tcaswell Ich dachte nicht, die neueste Version zu überprüfen, das ist mit 1.3.1. Genial, dass es in 1.4 behoben ist! – Ajean

Verwandte Themen