Farbige Tabelle/CSV Datei mit Python erstellen

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
TimeMen
User
Beiträge: 55
Registriert: Samstag 24. Dezember 2016, 10:25
Wohnort: Deutschland

Hallo ihr Lieben,

Im Zuge eines Experiments würde ich mich gerne mit einem Python Skript von der Richtigkeit der Ergebnisse überzeugen und diese auch darstellen.
Um ein Muster zu erkennen oder einen Zusammenhang, wäre es am geschicktesten, wenn ich mir eine beliebig große Tabelle, z.B. 29x29 generieren lasse, bei der die 3 möglichen Ergebnisse/Interpretationen mit 3 verschiedenen Farben dargestellt werden. Geschickt wäre es dazu noch, wenn diese Tabelle als CSV Datei gespeichert wird.

Das Skript habe ich schon, allerdings werden die Ergebnisse nur ausgegeben, und nicht auf diese Art in einer Tabelle dargestellt.
Gibt es da irgendwelche Bibliotheken, Tutorials, etc. die ihr mir da empfehlen könnt?

LG
TimeMen
Eine Signatur ist ein Text, der an deine Nachrichten angefügt werden kann. Sie ist auf 300 Zeichen begrenzt.
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

CSV kennt per se keine Farbinformationen. Es kommt damit auf deinen Betrachter an - soll das im Terminal ausgegeben werden, als Webseite, in Excel, oder per Roboter und Farbsand auf den Boden gestreut?
TimeMen
User
Beiträge: 55
Registriert: Samstag 24. Dezember 2016, 10:25
Wohnort: Deutschland

Als ob das als HTML Tabelle oder Libre Office Calc kompatible Datei rauskommt, ist prinzipiell eigentlich völlig egal.
Ich muss es nur gut auswerten können.
Eine Signatur ist ein Text, der an deine Nachrichten angefügt werden kann. Sie ist auf 300 Zeichen begrenzt.
Benutzeravatar
pixewakb
User
Beiträge: 1408
Registriert: Sonntag 24. April 2011, 19:43

Ich habe ein eigenes Modul, um HTML-Berichte schreiben zu können, da gibt es auch solche Farbhervorhebungen (d. h. einfach programmieren). Ich gebe mir manchmal solche Berichte auch als csv-Datei zur Weiterverarbeitung und/oder als Excel-File aus. Für letzteres nutze ich openpyxl, was ich sehr angenehm finde.

openpyxl kann auch Farbe, guckst du da:

http://openpyxl.readthedocs.io/en/default/styles.html

PS Ich denke, Du wirst Dir selbst eine Lösung schreiben müssen. Du könntest Deine Lösung ggf. hier mal posten, dann kann man sich austauschen.
TimeMen
User
Beiträge: 55
Registriert: Samstag 24. Dezember 2016, 10:25
Wohnort: Deutschland

Es gibt auch das http://www.decalage.info/python/html, allerdings bekomme ich da eine Error, sobald ich nur die Beispieldatei ausführe...

Code: Alles auswählen

  File "./table.py", line 2, in <module>
    import HTML
  File "/media/jakob/Intenso/Jugend Forscht/HTML.py", line 438
    print str(t)
            ^
SyntaxError: invalid syntax

Liegt das daran, dass da die Klammern in der HTML.py fehlen?
Danke schonmal für den Link. Die Arbeit mir da was selber zusammenzufrickeln wollte ich mir eigentlich sparen.
Aber vielleicht geht es wirklich einfacher mir irgendeine HTML Datei zu erstellen.

Oder hat jemand eine Ahnung ob es ein Bash Programm zum Tabellen erstellen gibt?
Hätte ich erwähnen können. Nutze Linux (Kubuntu 16.04 LTS).
Also mit einer Lösung mit Python + Bash hätte ich auch keine Probleme, auch wenn es wahrscheinlich eleganter geht.

//Edit
Ich hätte vielleicht erst die HTML.py überarbeiten sollen, und dann hier was posten sollen.
Soweit funktioniert HTML.py einwandfrei. Man bekommt den HTML Code für die Tabelle ausgegeben, und muss ihn nur noch in eine HTML Datei einfügen, oder man erweitert das Skript und erstellt direkt eine HTML Datei. Das ist ja dann auch nicht mehr die Welt.
Ich sehe mir auf alle Fälle noch openpyxl an, das ich mir grade installiert habe. Vielleicht erziele ich damit noch bessere Ergebnisse.
Eine Signatur ist ein Text, der an deine Nachrichten angefügt werden kann. Sie ist auf 300 Zeichen begrenzt.
BlackJack

@TimeMen: Du verwendest Python 3, wo `print()` eine Funktion ist, während der Code dort für Python 2 geschrieben wurde, wo ``print`` eine Anweisung ist.
TimeMen
User
Beiträge: 55
Registriert: Samstag 24. Dezember 2016, 10:25
Wohnort: Deutschland

Das habe ich dann auch vermutet und eben dann die paar Zeilen mit print xyz abgeändert.
Eine Signatur ist ein Text, der an deine Nachrichten angefügt werden kann. Sie ist auf 300 Zeichen begrenzt.
TimeMen
User
Beiträge: 55
Registriert: Samstag 24. Dezember 2016, 10:25
Wohnort: Deutschland

Okey, habe mich wohl umsonst vor dem Erstellen eines eigenen Moduls gefürchtet.
Das ist einfacher als gedacht. Vermutlich ist der Code nicht schön, aber solange er für mich funktioniert.
Eine Signatur ist ein Text, der an deine Nachrichten angefügt werden kann. Sie ist auf 300 Zeichen begrenzt.
TimeMen
User
Beiträge: 55
Registriert: Samstag 24. Dezember 2016, 10:25
Wohnort: Deutschland

Ich habe mir nun schlussendlich keine Bibliothek oder ähnliches geschrieben, sondern alles direkt ins Programm geschrieben.
Am Ende kommt dann eine HTML Datei raus.
Die Präambel wird am Anfang ausgegeben.
Dann kommt die Tabelle, die ich innerhalb meines Rechenverfahrens aktualisiere
Am Ende wird das HTML Dokument hübsch abgerundet, und fertig ist eine gute Tabelle, die sogar über JS verfügt.
Eine Signatur ist ein Text, der an deine Nachrichten angefügt werden kann. Sie ist auf 300 Zeichen begrenzt.
Antworten