Diagramm anpassen mathplotlib/pandas

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
maGGTech
User
Beiträge: 21
Registriert: Donnerstag 21. Mai 2020, 12:11

Hallo Community,

ich habe folgende Module: Conda, mathplotlib und pandas.

Ich habe aus einer csv Datei mir Werte auf die x- und y-Achse zeichen lassen, dabei kommt bei mir grad das hier raus:

Bild

Ich würde geren folgendes ausprobieren:
  1. Werte zusammenfassen: Zum Beispiel von X Werten den Durschnittswert bilden und nur diesen abbilden, um die Messwerte gröber/ besser sehen zu können
  2. Den Start- und Endwert farblich hervorheben mit einer anderen Markierung
  3. Den aufsteigenden Ast oder absteigenden Ast farblich/mit Markierung hervorheben, also so dass z.B. die erste Hälfte der Messwerte in einer anderen Farbe sind als die zweite Hälfte
Habt ihr eine Idee wie man das machen könnte?

Vielen Dank!
einfachTobi
User
Beiträge: 510
Registriert: Mittwoch 13. November 2019, 08:38

Wie plottest du denn? Wie sieht der Code dazu?
1. Numpy, Pandas: .mean(), sonst for-Schleife über die Liste dann plotten
2. Slicing
3. Slicing
Die Farbe kannst du über die Paramter "color" anpassen. Einzelen Punkte kannst du mit scatter() plotten.
maGGTech
User
Beiträge: 21
Registriert: Donnerstag 21. Mai 2020, 12:11

Danke für deine Antwort.

wieso Numpy (kenne Numpy nicht) und nicht Conda? Mein PyCharm ist vorhin abgestürtzt und jetzt fehlt die Verknüpfung zu Conda, ich checks nicht ... hab beim Projekt anlegen extra eine Enviroment mit Conda angelegt und jetzt ist die weg, weil das Programm abgeschmiert ist??

Im Moment siehts erst mal nur so aus:

import pandas as pd
from matplotlib import pyplot as plt

data = pd.read_csv('filename.csv', delimiter=';')

water_temp = data['Wasser Temperatur (°C)']
water_level = data['Wasserstand (cm)']

plt.plot(water_temp,water_level)

plt.show()

scatter kommt nicht in Frage, da ich Linien brauche.
Hast du Beispiel wie das mit slicing und mean funktioniert?
einfachTobi
User
Beiträge: 510
Registriert: Mittwoch 13. November 2019, 08:38

Ich verstehe deine Antwort nicht ganz. Du möchtest einzelne Punkte hervorheben: scatter().
Numpy ist ein Modul mit allerhand Tools für das wissenschaftliche Rechnen und bietet Arrays. Daher die Frage, ob du Numpy-Arrays verwendest. Das hat nichts mit Conds zu tun. Pandas verwendet im Hintergrund ebenfalls Numpy. Du musst die DataFrame Spalten nicht an einen Namen binden, sondern kannst sie direkt verwenden. Dafür sind die schließlich vorgesehen:

Code: Alles auswählen

plt.plot(data['Wasser Temperatur (°C)'], data['Wasserstand (cm)'])
Mittelwertbildung mit Pandas: mean(). Beispiel:

Code: Alles auswählen

print(data['Wasser Temperatur (°C)'].mean())
Beispiele für das Slicing mit Pandas: https://pandas.pydata.org/pandas-docs/s ... exing.html.
Du musst dir deine Messwerte vorher irgendwie sortieren/ordnen/trennen. Da du keine fortlaufenden Daten hast wird ein einfacher Plot so unübersichtlich aussehen, wie er gerade aussieht, da jeweils "Start" und "Anfang" einer neuen Reihe einfach verbunden werden.
Antworten