Excel Datei auslesen und Plots visualisieren

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
mgm841
User
Beiträge: 19
Registriert: Montag 7. Mai 2018, 12:15

Hallo zusammen,

ich bin neu in diesem Forum, ich würde mich freuen, wenn ihr mir behilflich sein könntet. Ich habe vor 2 Wochen angefangen mit Python zu arbeiten und ich muss gestehen, es macht mir doch sehr viel Spaß. Ich arbeite momentan an einem Uni-Projekt und zwar möchte ich aus Excel, nummerische Daten ziehen und diese graphisch visualisieren, am besten so, dass je 2 Spalten als 2 Graphen in einem Koordinatensystem dargestellt werden. Die Prämisse liegt darin, dass jede Spalte mit einer anderen Spalte dargestellt werden soll, jeweils in zweier Pärchen. Händisch kriege ich das mit Pandas Data_Frame und Matplotlib plt.plot hin, nun frage ich mich, wie ich die Sache automatisieren kann, sodass mein Skript für x-beliebige Excel Dateien verwendet werden kann. Nebenfact: die x-Achse soll 1,2,3,4...n skalieren, wohingegen die y-Achsen dann die Spalten aus der Excel Datei dargestellt werden sollen. Wäre schön, wenn ihr mir Ansätze nennen könntet, da ich momentan echt überfragt bin, wie ich genau vorgehen soll. Danke schonmal für eure Hilfe.
Sirius3
User
Beiträge: 17737
Registriert: Sonntag 21. Oktober 2012, 17:20

Mir ist nicht ganz klar, was Du automatisch machen willst? Kannst Du ein konkretes Beispiel mit Code geben?
mgm841
User
Beiträge: 19
Registriert: Montag 7. Mai 2018, 12:15

Ich bin erst Dienstag wieder an der Uni kann dann das Code schicken. Automatisieren ist vllt das falsche Wort, ich möchte ein Python Skript schreiben, welches nummerische Spalten aus einer Excel Datei erkennt und diese dann als Graph widergibt. Dabei sollen je 2 Spalten in einem Koordinatensystem dargestellt werden, damit ich sie vergleichen kann. Das Problem ist, das Skript soll für x-beliebige Excel Dateien verwendet werden. Und mit automatisieren meine ich, dass ich nicht jedesmal irgendetwas am Skript ändern möchte. Ein Skript soll das alles händeln.
TheLüddy
User
Beiträge: 20
Registriert: Freitag 27. April 2018, 10:17

Du könntest alle Dateien ähnlich benennen, z.B.: datei1, datei2, ... und dann dein Problem mit einer for-Schlaufe lösen.

Code: Alles auswählen

number = .. #Anzahl Dateien
for i in range(1, number):
    data.append(np.loadtxt("datei{}.xlsx".format(i)))
So wie es Sirius mir erklärt hat ;)
Sirius3
User
Beiträge: 17737
Registriert: Sonntag 21. Oktober 2012, 17:20

@TheLüddy: Excel-Dateien kann man nicht mit loadtxt lesen.

@mgm841: wenn ich die richtig verstehe, sind die Zahlen mal in Spalte A und mal in Spalte B oder C und Du möchtest gerne automatisch erkennen, in welcher Spalte denn nun die Zahlen stehen?
Benutzeravatar
pixewakb
User
Beiträge: 1411
Registriert: Sonntag 24. April 2011, 19:43

openpyxl würde ich hier nutzen und dann für die Spalten testen, ob es sich um Gleitkommazahlen oder eben Integer-Werte handelt; ich würde es wahrscheinlich in ein pandas.DataFrame packen und wahrscheinlich mit matplotlib plotten oder mal einen Blick über den Tellerrand wagen. Einige Bibliotheken scheinen mir momentan - was die Syntax betrifft - angenehmer als mpl.

BTW: Die Excel-Files sollten einigermaßen standardisiert sein, wäre zumindest bei mir dann gewünscht. Mir ist noch nicht klar, ob die Antwort Dir hilfreich ist...
Benutzeravatar
pixewakb
User
Beiträge: 1411
Registriert: Sonntag 24. April 2011, 19:43

Nachtrag: Du weißt, dass mpl Diagramme auch in einen Ordner speichern kann? Ich stochere noch im Nebel, aber du könntest Dateinamen wie etwa:

xlsx_filename_spalte_a_spalte_b.png

verwenden und so die Diagramme nach und nach ablegen. Ich nutze diese Funktion selbst sehr rege, um mir bestimmte Diagramme vorzubereiten, die ich dann per Bild-Anzeigeprogramm sichte.
Antworten