2 Fragen zu Matplotlib

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Arp
User
Beiträge: 65
Registriert: Dienstag 15. März 2011, 13:21

Hallo,

Ich habe mir ein kleines programm geschrieben das Matplotlib nutzt. Es liest alle paar Sekunde werte aus einer Datei ein und aktualisiert dann den plot.
Das funktioniert auch recht gut, ich hab da nur 2 probleme.

1. ich zeichne in jedem Durchgang neu, und wenn ich über ax.legend() eine Legende haben will, wird bei jedem Durchgang ein Element hinzugefügt, und irgendwann ist die Legende so groß wie der Bildschirm.
Kann man eine Legende komplett benutzerdefiniert anlegen? Ich will lediglich das da ein roter strich ist und dahinter ein beliebiger Text, bzw. der letzte eingelesene wert.

2. Da ich das ganze in einer while schleife hab die zu testzwecken grade nur 2 minuten läuft, scheint es, als könne ich das nicht schließen indem ich auf x klicke. Erst wenn die 2 Minuten durch sind schließt sich das fenster. Kann ich da irgendwie eine klick abfrage einbauen die das Fenster und damit das Programm auch schließt bevor die Zeit um ist?

Danke.
Arp
User
Beiträge: 65
Registriert: Dienstag 15. März 2011, 13:21

Hallo nochmal,

Erste 2 Probleme sind immernoch gültig, aber ich hab noch eine weitere frage.

Ist es irgendwie möglich die Toolbar zu löschen so das man wirklich nur den Plot im Fenster sieht?
thx.
Benutzeravatar
gkuhl
User
Beiträge: 600
Registriert: Dienstag 25. November 2008, 18:03
Wohnort: Hong Kong

Hallo Arp,

nur eben ganz kurz (um mehr zu sagen bräuchten wir auch etwas Quelltext):
zu 1) Bei ``legend`` kannst du als Argument 'labels' und 'lines' übergeben.
zu 2) Du verwendest vermutlich ``time.sleep``. Stattdessen solltest du die ``after`` Methode des verwendeten GUI verwenden.
zu 3) Hier ein Beispiel (auch zu 2): http://matplotlib.sourceforge.net/examp ... in_tk.html

Grüße
Gerrit
Arp
User
Beiträge: 65
Registriert: Dienstag 15. März 2011, 13:21

Hi gkuhl,

Danke für den Link. Das funktioniert und wenn ich die Toolbar weg lasse, ist es genau das was ich eigentlich haben will. Ich kenn mich mit gui programmierung nicht so aus. Wie kriegt man es nun hin das in der gui in einer Schleife Daten eingelesen werden und dann der Plot neu gezeichnet wird? Wenn du da auch ein Beispiel dafür hättest, wär das Prima, könnte daraus vermutlich alles nötige zusammenbasteln.
Thx.
Antworten