Plotten eine DataFrame/NumPy Array

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
Ameinsenpeter
User
Beiträge: 12
Registriert: Freitag 2. Oktober 2020, 09:32

Hallo Forum,
ich möchte später mal ein bisschen Datenauswertung mit Python betreiben. Da ich absoluter Neueinsteiger in Python bin,
habe ich mir mal Testweise in Excel eine Wertetabelle einer Funktion erstellt und diese als Csv exportiert.
Diese Csv habe ich in Python eingelesen. Soweit alles gut. Doch wenn es nun ans plotten geht, y über x, passiert etwas komisches.
Ich habe das DataFrame in ein ndarray umgewandelt, das ändert aber auch nichts. Habe auch die ',' in der Csv durch '.' ersetzt.
Der Plot sieht folgendermaßen aus.
https://ibb.co/mzymHH8
Der Code dazu so:

Code: Alles auswählen

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd


Wertetabelle = pd.read_csv('CsvTest.csv', sep=';', index_col=None)
print(type(Wertetabelle))
Wertetabelle2 = Wertetabelle.replace(to_replace= ',', value= '.', regex=True)
WA = Wertetabelle2.values
print(type(WA))
x = WA[:,0]
y = WA[:,1]
plt.plot(x,y)
plt.show()
Nun meine Frage, was mache ich falsch und wie erhalte ich einen schönen Funktionsgraphen?
Sirius3
User
Beiträge: 18221
Registriert: Sonntag 21. Oktober 2012, 17:20

Du hast keinen regulären Ausdruck, warum dann regex=True?
Nur weil Du in Strings ein Zeichen ersetzt, werden daraus nicht magisch Zahlen.
Du mußt bereits beim Lesen das Decimal-Komma angeben:

Code: Alles auswählen

werte = pd.read_csv('CsvTest.csv', sep=';', index_col=None, decimal=',')
Ameinsenpeter
User
Beiträge: 12
Registriert: Freitag 2. Oktober 2020, 09:32

Hey Sirius3,

vielen Dank, das hat funktioniert. Wie gesagt, ich bin Neueinsteiger :D

Viele Grüße
Peter
Antworten