Kurvenschar aus DataFrame Plotten ohne header

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
peachli
User
Beiträge: 18
Registriert: Dienstag 13. März 2018, 20:21

Hallo Zusammen,

ich würde gerne eine Kurvenschar plotten. Leider komme ich nicht so recht weiter.
Es geht dabei um 50 Bauteile, deren Position (x-Achse) und Drehmomentwerte (y-Achse) ich gerne in ein einziges Diagramm plotten würde.

Dabei geht es mir nicht nur darum, wie ich das Problem genau löse, sondern mich würde auch interessieren welche Möglichkeit ihr für am sinnvollsten erachtet.

Zunächst wollte ich die Daten als XLSX-Datei einlesen und soweit vorbereiten, dass diese in ein Diagramm eingefügt werden können.
Beispielhaft sieht die Tabelle folgendermaßen aus:

Bild

Meine Idee war es zunächst, die Verbunden Zellen aus der ersten Zeile zu löschen und im nächsten Schritt die Werte in einen DataFrame, Array oder ähnlichem zu speichern.
Da dies nicht geklappt hat, habe ich die Tabelle zunächst per Hand gekürzt, so dass nur noch Zahlenwerte, ohne überschriften in der Tabelle stehen.
Da ich weiß, dass die erste Spalte, die Position des ersten Bauteils ist und die 3,5,7 usw. Spalten, die Position der darauffolgenden Bauteile, wollte ich diese zunächst in einen Array schreiben.

Das Auslesen habe der Ganzen Tabelle habe ich zunächst folgendermaßen probiert:

Code: Alles auswählen

df=pd.read_excel('raw.xlsx', header=None)
Im Anschluss wollte ich eine LIste den den Daten aller Bauteile erzeugen:

Code: Alles auswählen

Bauteile= [0]*df.shape[1]
Nun war meine Idee jeweils einen DataFrame mit den x /y werten eines Bauteils auf je einen Platz der Liste zu schreiben, damit ich später mir die Kurven dort heraussuchen könnte, die ich plotten möchte,
leider hat das nicht ganz geklappt.

Hat Jemand eine Idee, in welchen Datentyp ich die Dateien am besten einpflege, so dass ich jeweils auf die Daten der einzelnen Bauteile zugreifen kann? Ein Späteres Ziel wäre es, dass ich direkt die Daten der Bauteile eingeben kann, um mir daraus den entsprecheden Vergleich plotten zu lassen. Aber zunächst würde es mir reichen, wenn ich weiß wie ich diese am besten aufbereite und in welche Form ich diese am besten Bringe.

Danke schon einmal
einfachTobi
User
Beiträge: 512
Registriert: Mittwoch 13. November 2019, 08:38

Leider ist die Tabelle nicht sichtbar. Es wäre zunächst zu klären, warum das Einlesen der ursprünglichen Tabelle nicht funktioniert - denn das sollte es. Dann hast du alle Daten in einem DataFrame (das ist kein Array) und benötigst keine weitere Listen, sondern kannst damit arbeiten und diese auch nach belieben plotten.
Bitte stelle doch mal ein Beispiel bereit, welches auch angezeigt wird :)
peachli
User
Beiträge: 18
Registriert: Dienstag 13. März 2018, 20:21

Ach Mist, jetzt hat sich wegen der neuen Session der Post verabschiedet :D Dann schreibe ich es eben noch einmal neu:

@Tobi
Was genau nicht geklappt hat, kann ich dir nicht genau sagen, ich habe zumindest einige Sachen ausprobiert, aber nicht alles dokumentiert und deshalb mir vorgenommen erst einmal den einfachsten Fall zu betrachten und im Anschluss, sobald das Einlesen der Daten und in eine geeignete Form bringen funktioniert, weitere Funktionen hinzuzufügen.

Da die Tabelle aus meinem Ausgangspost nicht funktioniert hat, habe ich noch einmal ein BIld des Beispiels bei einem anderen Hoster hochgeladen:

Bild

In der Tabelle ist zu sehen, dass die Position des ersten und zweiten Bauteils in Spalte 1 und 3 zu finden sind, die Drehmomentwerte entsprechend in Spalte 2 vom ersten und in Spalte 4 von zweiten Bauteil.

Da die Oberen Zellen Verbunden waren, wollte ich diese zunächst löschen. Im Anschluss lassen sich die Positionen der einzelnen Bauteile nur nicht mehr unterscheiden, da
diese alle den gleichen Namen haben. Jedoch könnte ich diese anhand Ihres Indexes unterscheiden.

Mein Ziel wäre es für die Zukunft z.B. durch Eingabe der Namen oder einer ID die ersten 100 Werte von Bauteil 1, 23, 140 die nicht älter als 3 Wochen sind, in einem Chart gemeinsam zu plotten und andersweitig zu verarbeiten.

Aber zunächst wäre es mir wichtiger zu verstehen, wie ich die Daten in eine geeignete Form bringe, um mit Ihnen zu arbeiten, zu kopieren, Plotten, rechnen usw.
Benutzeravatar
__blackjack__
User
Beiträge: 14012
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@peachli: Das würde ich ja versuchen als Dataframe mit einem MultiIndex für die Kopfzeilen einzulesen.
“The best book on programming for the layman is »Alice in Wonderland«; but that's because it's the best book on anything for the layman.” — Alan J. Perlis
Antworten