Seite 1 von 1

2 Fragen zu Matplotlib

Verfasst: Dienstag 26. Juli 2011, 12:15
von Arp
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.

Re: 2 Fragen zu Matplotlib

Verfasst: Mittwoch 27. Juli 2011, 02:18
von Arp
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.

Re: 2 Fragen zu Matplotlib

Verfasst: Mittwoch 27. Juli 2011, 04:47
von gkuhl
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

Re: 2 Fragen zu Matplotlib

Verfasst: Mittwoch 27. Juli 2011, 12:11
von Arp
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.