Datensatz plotten

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
thomasxiii
User
Beiträge: 3
Registriert: Donnerstag 3. Dezember 2020, 15:15

Guten Morgen liebe Community,
ich muss für eine wissenschaftliche Arbeit Daten plotten. Dies habe ich soweit auch hinbekommen.
Auf der x-Achse befinden sich gut 10000 Werte. Auf der y-Achse sind die Kräfte eingetragen.
Nun möchte ich die Peaks makieren und die Werte an der Stelle ausgeben. Idealerweise ohne die x-Werte bei den Peaks zu kennen. Alternativ wäre es auch okay die x-Werte einzugeben. Die Peaks kann ich notfalls selbst ablesen. Könnt ihr mir weiterhelfen?

LG Tom
Benutzeravatar
sparrow
User
Beiträge: 4538
Registriert: Freitag 17. April 2009, 10:28

So ein bisschen Kontext ist aber schon ratsam.

Zeig anhand eines lauffähigen Beispielcodes, was du bisher tust. Denn aus deiner Erklärung gehen nicht einmal so Kleinigkeiten wie die verwendeten Module und Bibliotheken hervor...
einfachTobi
User
Beiträge: 512
Registriert: Mittwoch 13. November 2019, 08:38

Schuss ins Blaue: https://docs.scipy.org/doc/scipy/refere ... peaks.html.
Grundsätzlich hat sparrow Recht: Um bei Problemen eine Hilfestellung geben zu können, müssen eine detaillierte Beschreibung und vor allem der Code vorhanden sein.
thomasxiii
User
Beiträge: 3
Registriert: Donnerstag 3. Dezember 2020, 15:15

Also das ist soweit mein Code:

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

abc = pd.read_excel('abc.xlsx', 'Tabelle1')

Reihenfolge = abc['Reihenfolge'][1:]

F = abc['F'][1:]

plt.plot(Reihenfolge, F)
plt.show()

Nun möchte ich F bei bei z.B. Reihenfolge=881 ausgeben im Plot. Also das dieser Punkt fabrlich kenntlich gemacht ist und das der Wert im Diagramm zu sehen ist.

Könnt ihr mir weiterhelfen?

Danke und viele Grüße,
Tom
einfachTobi
User
Beiträge: 512
Registriert: Mittwoch 13. November 2019, 08:38

Zunächst die offensichtlichen Punkte:
- Numpy wird importiert, aber nicht verwendet.
- Variablen schreibt man komplett_klein.
- Verwende vernünftige Namen für deine Variablen, die den Inhalt beschreiben. Auch für deine Beispiele hier.
- Bitte benutze die Code-Tags im Forum, damit die Einrückungen erhalten bleiben (</>-Knopf im vollständigen Editor).
Die Verwendung von `[1:]` erschließt sich mir nicht ganz. Warum machst du das? Ich vermute, dass du Dinge überspringen willst, was gleich beim richtigen Einlesen der Daten erledigt werden kann (s. https://pandas.pydata.org/pandas-docs/s ... excel.html).

Wenn du einfach nur bestimmte Punkte markieren willst: https://matplotlib.org/3.3.3/api/_as_ge ... atter.html. Ansonsten schau dir meinen vorherigen Link an - das sind auch Beispiele in denen genau das gemacht wird, was du vor hast.
thomasxiii
User
Beiträge: 3
Registriert: Donnerstag 3. Dezember 2020, 15:15

Danke für die Tipps :) Ich habe es mittlerweile geschafft, dass ich einen Text mit der Funktion annotate im Diagramm plotten kann:

plt.annotate('abc',
xy=(881, F[880]), xycoords='data',
xytext=(+10, +30), textcoords='offset points', fontsize=16,
arrowprops=dict(arrowstyle="->", connectionstyle="arc3, rad=.2"))

Allerdings möchte ich keinen Text plotten sondern den Wert F[880]. Könnt ihr mir da weiterhelfen?
Antworten