Gnuplot - Kurvenbeschriftung

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
Zizibee
User
Beiträge: 166
Registriert: Donnerstag 12. April 2007, 08:36

Freitag 20. April 2007, 10:51

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")
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Freitag 20. April 2007, 12:09

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
Zizibee
User
Beiträge: 166
Registriert: Donnerstag 12. April 2007, 08:36

Freitag 20. April 2007, 12:27

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 ;)
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Freitag 20. April 2007, 12:33

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
Zizibee
User
Beiträge: 166
Registriert: Donnerstag 12. April 2007, 08:36

Freitag 20. April 2007, 12:41

@ mawe
So gehts :shock: :D
Danke, danke, danke!

Dann versuch ich jetzt doch gleich mal das bei mir einzubauen! :D
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Freitag 20. April 2007, 19:29

Warum nimmst du nicht gleich matplotlib? Das erstellt IMHO bessere/schönere Grafiken und ist eine reine Pythonbibliothek.

http://matplotlib.sourceforge.net
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Freitag 20. April 2007, 19:42

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 ;-)
Zizibee
User
Beiträge: 166
Registriert: Donnerstag 12. April 2007, 08:36

Montag 23. April 2007, 07:34

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...
Antworten