Seite 2 von 2
Re: Python und matplotlib
Verfasst: Donnerstag 12. August 2010, 10:41
von MTroi
Verzeihung dass ich den Thread übernommen habe, aber das Thema war ja ähnlich und schien so gut wie abgeschlossen. Allerdings sicherlich kein netter Einstand von mir in diesem Forum.
Jedenfalls vielen Dank für die Lösung, es funktioniert nun endlich wie es soll.
Ich werde in Zukunft mehr Rücksicht zeigen.
Re: Python und matplotlib
Verfasst: Donnerstag 12. August 2010, 11:54
von 3ff
@ DaMutz
Danke, nur gut, das es dies Forum gibt. Ich hab das Programm auch am laufen.
Ich hab mal die csv Datei untersucht.
bei mir gab es kein Feld length_m
das war:
length m
und das ist
ganz was anderes.
Eigentlich ist das Dateiformat der csv-files einfach: alle Felder werden entweder durch:
,
tab
etc getrennt.
Ich benutze matplotlib im Zusammenhang mit latex fuer beamerpraesentationen.
die matplotlib hat die Funktion Speichern in png-Format und dies Format kann man mit convert zu eps holen und dann in Latex integrieren.
In Deiner Fundstelle gibts auch Beispiele fuer 3D Darstellungen. Auch die laufen in Latex.
Streng genommen ist es natuerlich 2 1/2 D aber wir wollen nicht paepstlicher sein als der Papst.
Die Programmiersprache Python hat sich da auch schon reingehaengt und es gibt inzwischen viele Latex-Funktionen, die man ueber Python ausloesen kann.
Ich will allerdings bei Latex bleiben, ich hab
-viele Templates
-viele Vorlagen
und vorallem super Dokus.
Da kann sich riverbankcomputing/Nokia aber 1 Scheibe von abschneiden.
Guude!
Fritz

Re: Python und matplotlib
Verfasst: Donnerstag 12. August 2010, 12:03
von maria_dolores
@DaMutz: Danke, sieht jetzt sehr gut aus.
Da ich gerade schon beim Löcher-in-den-Bauch-fragen bin, habe ich spontan auch noch eine.
Es gibt ja diese time.strftime-Funktion, die in meinem Fall HH:MM:SS ausgibt. Wenn ich nun mehr als 24 Stunden habe, wie sage ich, dass ich sowas wie T:H:M:S möchte?
Ich habe schon mal nachgeschaut, welche Argumente es gibt, aber nichts gefunden, was dabei hilft.
Beispiel:
Code: Alles auswählen
import time
t = (1232116.009546)
print time.strftime('%H:%M:%S', time.gmtime(t))
#Zeit ist in Sekunden
Das Ergebnis ist 06:15:16. Allerdings entspricht es nicht nur 6 Stunden, sondern 342:25:44, was 14 Tagen, 15 Stunden, 25 Minuten und 44 Sekunden entspricht. Ich hoffe, ihr versteht was ich meine.
Habt ihr eine Idee?
Gruß Isa
Re: Python und matplotlib
Verfasst: Donnerstag 12. August 2010, 14:25
von BlackJack
@maria_dolores: Da wirst Du Dir selber eine Funktion basteln müssen. So schwer ist das ja aber nicht. Ein bisschen Modulurechnung. Die `divmod()`-Funktion könnte da nützlich sein.
Re: Python und matplotlib
Verfasst: Donnerstag 12. August 2010, 14:34
von BlackJack
@3ff: CSV ist doch etwas komplizierter als nur ein Trennzeichen zwischen den Feldern. Das Trennzeichen und auch Zeilenumbrüche dürfen auch innerhalb der Felder vorkommen. Also braucht man dafür einen Mechanismus um diese Zeichen zu schützen. Und das Escapezeichen dafür muss man auch wieder schützen, denn auch das darf ja innerhalb von Feldern vorkommen.
Bei Matplotlib zu LaTeX über PNG und EPS zu gehen ist nicht der beste Weg. PNG ist ein Pixelformat, also nicht verlustfrei skalierbar. Matplotlib kann selbst schon PostScript erzeugen. Und auch PDF. Letzteres kann man mit `pdflatex` direkt verwenden und man bekommt im Ergebnis Diagramme, die man verlustfrei skalieren kann, also auch in optimaler Qualität drucken kann. Egal welche Auflösung beim Drucken verwendet wird.
Und könntest Du mal mit diesem ständigen und hier völlig deplatzierten und unsinnigen Nokia-bashen aufhören!? Wir haben ja mittlerweile alle verstanden, dass Du nicht in der Lage bist mit der Dokumentation von PyQt4 umzugehen.

Re: Python und matplotlib
Verfasst: Donnerstag 12. August 2010, 15:55
von 3ff
@Black Jack
Was heisst hier Nokia verpruegeln? Die geben doch 1 Sche... darum.
Fuer uns kommt das 1mal nicht infrage, wir haben es auf Halt gesetzt!
Du scheinst ja 1 abenteuerlichen Begriff von Doku zu haben.
Soweit dazu.
Jetzt noch 1 schoenen Nahmittag!
Fritz

Re: Python und matplotlib
Verfasst: Donnerstag 12. August 2010, 16:14
von Hyperion
H2O für 1 Unsinn schrei>!
Re: Python und matplotlib
Verfasst: Donnerstag 12. August 2010, 16:30
von cofi
Hyperion hat geschrieben:H2O für 1 Unsinn schrei>!
Ich fuerchte da hilft nur noch Schnaps.
Re: Python und matplotlib
Verfasst: Donnerstag 12. August 2010, 17:15
von BlackJack
@3ff: Du hast Deine Meinung dazu schon mehrfach kundgetan. Und sie hat in *diesem* Diskussionsfaden einfach nichts zu suchen. Andere kommen mit der Dokumentation sehr gut zurecht. Ich habe schon deutlich schlechtere gesehen -- und ja, auch bei kommerziellen Produkten.
Re: Python und matplotlib
Verfasst: Freitag 13. August 2010, 10:30
von maria_dolores
@BlackJack: Ich habe jetzt versucht mir eine solche Funktion zu bauen, habe aber noch ein Problemchen damit.
Ich möchte, dass die Sekunden, die der Funktion übergeben werden nicht manuell eingegeben werden, sondern automatisch. BIsher sieht es so aus:
Code: Alles auswählen
def day_hms(data):
sek = data
d,s = divmod(sek, 86400)
h,s = divmod(sek, 3600)
m,s = divmod(sek, 60)
print "%0.2f: %0.2f: %0.2f: %0.2f" % (d, h, m, s)
Wenn ich nun die Sekunden automatisch übergebe, dann motzt er und sagt
Code: Alles auswählen
d,s = divmod(sek, 86400)
TypeError: unsupported operand type(s) for divmod(): 'str' and 'int'
Hat jemand eine Idee, was ich da falsch mache und wie man es richtig machen könnte?
Gruß Isa
Re: Python und matplotlib
Verfasst: Freitag 13. August 2010, 11:39
von BlackJack
@maria_dolores: Du übergibst da eine Zeichenkette und versuchst die durch eine Zahl zu teilen. Das macht nicht viel Sinn.
Re: Python und matplotlib
Verfasst: Freitag 13. August 2010, 11:44
von maria_dolores
@BlackJack: Das sehe ich ein. Das macht wirklich nicht viel Sinn.
Wenn ich bei meiner Funktion eine konkrete Zahl eingebe, dann klappt es auch. Ist ja auch logisch. Ich möchte aber die Sekunden automatisch übergeben. Da es mit divmod so nicht funktioniert und strftime() auch nicht geht, weil da jeweils nur bis 24 Stunden gezählt wird und dann wieder bei 0 Stunden beginnt, weiss ich nicht, wie ich weitermachen kann.
Hast Du da eine Idee?
Gruß Isa
Re: Python und matplotlib
Verfasst: Freitag 13. August 2010, 11:52
von cofi
Ich glaube dann willst du dir mal
datetime anschaun.
Re: Python und matplotlib
Verfasst: Freitag 13. August 2010, 12:04
von BlackJack
@maria_dolores: Was für eine Zeichenkette übergibst Du denn da?
Re: Python und matplotlib
Verfasst: Freitag 13. August 2010, 12:08
von maria_dolores
@cofi: Danke. Habe mir eben dateimte angeschaut. Prinzipiell eine super Lösung.
Nur kann ich hier scheinbar keine Argumente automatisch übergeben. Ich habe es so versucht:
Code: Alles auswählen
import datetime
a = 1232116.009546
sek = datetime.datetime(a)
print sek
Er motzt dann und sagt
Code: Alles auswählen
TypeError: Required argument 'month' (pos 2) not found
Woraus ich schließe, dass ich die Daten dann alle manuell eingeben soll.
@BlackJack: Ich übergebe dabei eigentlich nur eine Zahl. Es sieht bei mir so aus:
Ich habe eine Datenbank und mache eine Abfrage. (Das Ganze mit SQLite und dem SQLiteManager). Ich bekomme dann durch meine Abfrage unter anderem eine Zahl in Sekunden. Diese möchte ich dann nutzen, um sie erstens per ReportLab in eine Tabelle zu schreiben und zweitens um einen Plot zu erzeugen.
Ich habe aber nicht nur eine Abfrage, sondern bisher so um die 60. Dementsprechend ist es recht sinnvoll, das das alles automatisch klappt.
Ich weiss nur nicht, ob ich bei dem DateTime was falsch gemacht habe.. Ich arbeite jetzut erst seit 3 Wochen mit Python und kenne mich da noch nicht so aus.
Gruß Isa
Re: Python und matplotlib
Verfasst: Freitag 13. August 2010, 12:18
von cofi
Es gibt `datetime.fromtimestamp` das erzeugt dir ein `datetime` Objekt aus Unix-Zeiten, z.b. `time.time` was du dann in der Datenbankspeichern könntest.
Dokumentation
Re: Python und matplotlib
Verfasst: Freitag 13. August 2010, 13:33
von BlackJack
@maria_dolores: Wenn Du eine Zahl in Sekunden aus der Datenbank bekommen würdest, dann würde kein Fehler kommen der sagt Du hättest eine Zeichenkette übergeben. Also solltest Du mal schauen was Du aus der Datenbank bekommst, und warum das keine Zahl ist.
Re: Python und matplotlib
Verfasst: Mittwoch 18. August 2010, 13:19
von maria_dolores
@BlackJack: Du hattest recht, das wa sich übergeben habe passte nicht.
Danke.
Gruß Isa