Probleme beim 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
Me99
User
Beiträge: 2
Registriert: Donnerstag 17. Februar 2022, 15:03

Hallo Ihr Lieben,

ich möchte die Daten einer .txt Datei grafisch darstellen. Dafür habe ich diese importiert und die wichtigen Daten (Überschriften, etc. nicht) in eine Excel gespeichert. Es sind zwei Spalten mit Daten, zusätzlich wird automatisch in Spalte A eine Nummerierung eingefügt. Ich rufe dann die Excel-Datei wieder auf und speichere die Beiden Spalten in jeweils einer Liste ab. Lasse ich die Listen mit print() darstellen sind diese auch korrekt. Plotte ich allerdings jetzt die eine Liste gegen die andere, wird die "Energy" Liste ignoriert? Und Die Intensitätsachse wird in linearen x-Achsen Schritten geplottet. Außerdem muss ich das Programm manuell abbrechen, weil es aus irgendeinem Grund nicht mehr von selbst stoppt. Vielleicht hat einer von Euch ja eine Idee wo das Problem liegt. Vielen Dank schonmal und hier ist besagter Code:

import matplotlib.pyplot as plt
import pandas as pd
import openpyxl

df = pd.read_table('/Users/meritspring/Desktop/high-res.txt', skiprows=15)
df.to_excel('Datasheet.xlsx', 'Sheet1')

fileXLSX = openpyxl.load_workbook('Datasheet.xlsx')

sheet = fileXLSX["Sheet1"]

Energy = []

for row in sheet['B1':'B2409']:
for col in row:
Energy.append(col.value)

Intensity = []

for row in sheet['C1':'C2409']:
for col in row:
Intensity.append(col.value)


plt.plot(Intensity)
plt.show()
rogerb
User
Beiträge: 878
Registriert: Dienstag 26. November 2019, 23:24

@Me99,

ich denke du machst es zu umständlich. Du plottest ja auch nur die 'Intensity', da kann die 'Energy' nicht angezeigt werden.

Du kannst doch das DataFrame direkt plotten.

plt.plot(df) <- Das erzeugt zwei Graphen, bei denen jeweils Energy und Intensity gegenüber der x-Achse dargestellt werden.

Oder:
plt.plot(df["Energy"], df["Intensity"]) <. Das erzeugt einen Graphen bei dem die Intensitätswerte über den Energiewerten angezeigt werden.

(Ich weiß nicht wie die Spalte in deinem DataFrame heißen. Daher must du vlt. andere Namen verwenden als ich)
Me99
User
Beiträge: 2
Registriert: Donnerstag 17. Februar 2022, 15:03

Danke für Deine Antwort! Ich habe das Problem inzwischen gefunden. Ich habe bei der Excel bei der ersten Zeile angefangen und hatte dadurch jeweils einen String zu Beginn der "Energy"- und "Intensity"-Listen.
Antworten