Seite 1 von 1

Gnuplot - Kurvenbeschriftung

Verfasst: Freitag 20. April 2007, 10:51
von Zizibee
Tach mal wieder,

ich weiß, dass das Problem mehr mit Gnuplot als mit Python zu tun hat, aber immerhin will ich es ja über Python ansteuern :wink:

Ich lasse mir mit Gnuplot ein paar Kurven gleichzeitig in einem Fenster ausgeben, leider weiß man nicht welche Kurve was darstellt. Darum hätte ich gerne eine Beschriftung jeder Kurve.
Ich hab auch massig Beispiele gefunden, wie man Dateien in Gnuplot aufruft und sie dann beschriften lässt. Mit meinen Listen funktioniert das mit Python aber irgendwie nicht so ganz.
Die Beispiele sehen alle immer so aus:

Code: Alles auswählen

plot 'creep_qz.dat' title "Quarz"
1:1 auf mein Programm übertrage hieße das dann

Code: Alles auswählen

g.plot(data title "Kurve 1")
oder

Code: Alles auswählen

g('plot data title "Kurve 1"')
bzw.

Code: Alles auswählen

g('plot 'data' title "Kurve 1"')
gefällt ihm aber alles nicht :(

Falls das jemand testen will, der Code zum Erstellen sieht eigentlich nur so aus:

Code: Alles auswählen

import Gnuplot

g = Gnuplot.Gnuplot()
g('set style data linespoints')
g('set grid')
g.title('I(V)-Kennlinie')
g.xlabel('Voltage (V)')
g.ylabel('Current (A)')
data = list()
data.append([1,1])
data.append([2,2])
data.append([3,3])
Hat schon mal irgendjemand hier so etwas versucht?

Schonmal vielen Dank!

[EDIT:] Natürlich kommt noch die Eingabeaufforderung, damit das Fenster offen bleibt

Code: Alles auswählen

raw_input("Press any key to Exit")

Verfasst: Freitag 20. April 2007, 12:09
von CM
Versucht? Ja, aber das Modul hat sich als zu unpraktisch erwiesen. Ich habe es aufgegeben es zu verwenden. Es ist von 2003 und relativ veraltet.

Gelegentlich verwendet ich gnuplot an sich, aber meist Python in Verbindung in matplotlib - was ich denn auch empfehlen möchte.

Zum Problem: Was ist der Traceback? (Du siehst ich verstehe die Frage nicht ganz.) In Deinem letzten Beispiel haben g und data nichts miteinander zu tun.
Im Download gibt es eine Datei demo.py. Diese beschreibt das Können von Gnuplot.py recht gut. Dein Problem wird ebenfalls geschildert.

HTH
Christian

Verfasst: Freitag 20. April 2007, 12:27
von Zizibee
CM hat geschrieben: In Deinem letzten Beispiel haben g und data nichts miteinander zu tun.
Dort steht ja auch nur, wie ich die Liste 'data' erstelle und alles für den plot-Befehl fertig mache. Das g würde dann beim plotten wieder auftauchen, in der Form wie

Code: Alles auswählen

g.plot(data)
Und meine Frage ist jetzt, wie ich in diesen plot-Befehl noch den Titel der Kurve mit hinein bekomme...
CM hat geschrieben:Im Download gibt es eine Datei demo.py. Diese beschreibt das Können von Gnuplot.py recht gut. Dein Problem wird ebenfalls geschildert.
Gut :) Dann werd ich die hier mal suchen, hab nämlich keine Ahnung wo hier was installiert ist ;)

Verfasst: Freitag 20. April 2007, 12:33
von mawe
Hi,

versuchs mal so

Code: Alles auswählen

In [1]: import Gnuplot

In [2]: g = Gnuplot.Gnuplot()

In [3]: bla = ([1,1], [2,2], [3,3])

In [4]: d = Gnuplot.Data(bla, title="blabla")

In [5]: g.plot(d)
Gruß, mawe

Verfasst: Freitag 20. April 2007, 12:41
von Zizibee
@ mawe
So gehts :shock: :D
Danke, danke, danke!

Dann versuch ich jetzt doch gleich mal das bei mir einzubauen! :D

Verfasst: Freitag 20. April 2007, 19:29
von Joghurt
Warum nimmst du nicht gleich matplotlib? Das erstellt IMHO bessere/schönere Grafiken und ist eine reine Pythonbibliothek.

http://matplotlib.sourceforge.net

Verfasst: Freitag 20. April 2007, 19:42
von CM
Das kann ich nur unterstreichen. Möchte mal kurz ein paar Pros & Cons zusammenfassen:

Für Gnuplot spricht schnelles plotten in 2D und 3D. Ein einfaches Inputfile und schwups ist der Plot auf dem Schirm.

Für matplotlib spricht: Viel bessere Graphik, allerdings (fast) nur in 2D. Und die volle Power von Python (OO interface von matplotlib). Tolle Möglichkeiten den Plot interaktiv zu verändern. Dagegen spricht: Etwas(!) mehr Programmieraufwand. U. a. daher haben sich Pythoninterfaces zu Gnuplot nicht so recht durchsetzen können.

Gruß,
Christian, erwischt beim Predigen ;-)

Verfasst: Montag 23. April 2007, 07:34
von Zizibee
Joghurt hat geschrieben:Warum nimmst du nicht gleich matplotlib? Das erstellt IMHO bessere/schönere Grafiken und ist eine reine Pythonbibliothek.
Das Problem dabei ist, dass mein Programm auf mehreren Rechnern hier laufen muss. Also sollte es ohne Nachinstallationen lauffähig sein. Vor allem da das mit dem Installieren hier wohl auch immer so ein Problem mit den Rechten ist...