Textdatei als Liniendiagramm ausgeben

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
Beckoeu
User
Beiträge: 3
Registriert: Mittwoch 31. Oktober 2018, 09:31

Hallo

ich bin neu im Forum.
Und habe eine Text-Datei mit ungefähr zwanzig Werten, die alle untereinander stehen. Die Werte in der Datei sollen die y-Werte darstellen.
Jetzt wollte ich die Werte als Liniendiagramm darstellen, was auch mit dem Code funktioniert.

Nun habe ich aber das Problem, das die Achsenbeschriftung nicht mit angezeigt wird.
Außerdem wollte ich, dass die y-Werte nicht einen Abstand von 1 Sekunde, sondern einen von 10 Sekunden haben.

Code: Alles auswählen

import numpy as np
import matplotlib.pyplot as plt
import sys
import pandas as Pandas

try:
    data = pandas.read_csv("Test.txt")
except:
    print("Dateizugriff nicht erfolgreich")
    sys.exit(0)

var = data.groupby(level = 0).sum()
fig = plt.figure()
ax1 = fig.add_subplot(1,1,1)

ax1.set_xlabel('Zeit / s')
ax1.set_ylabel('y-Werte')
var.plot(kind='line')

plt.show()
Benutzeravatar
ThomasL
User
Beiträge: 1378
Registriert: Montag 14. Mai 2018, 14:44
Wohnort: Kreis Unna NRW

Versuche es mal so

Code: Alles auswählen

summe = data.groupby(level = 0).sum()
summe.plot(kind='line')
plt.title('Titel')
plt.ylabel('y-Werte')
plt.xlabel('Zeit / s')
plt.show()
oder so

Code: Alles auswählen

summe = data.groupby(level = 0).sum()
ax = summe.plot(kind='line')
ax.set_title('Titel')
ax.set_ylabel('y-Werte')
ax.set_xlabel('Zeit / s')
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Beckoeu
User
Beiträge: 3
Registriert: Mittwoch 31. Oktober 2018, 09:31

Hallo
ich glaube, dass ich es jetzt selber hin bekommen habe.

Code: Alles auswählen

import numpy as np
import matplotlib.pyplot as plt
import sys
import pandas as pandas
lines = []

#Versuch die Datei zu öffnen,

try:
    #obj = pandas.read_csv("Test.txt", "r")
except:
    print("Dateizugriff nicht erfolgreich")
    sys.exit(0)

#iterrows() gibt den index und den Wert jeder Zeile einer Datei aus
#append() fügt die Werte der Datei in ein Array
for index, line in obj.iterrows():
    lines.append(line)

#array() erstellt ein Array/Liste aus den lines-Werten
C = np.array(lines)

#linspace(start, stop, Anzahl der Elemente
#Elemente sollen Abstand von 10ns haben
x = np.linspace(0, len(lines)*10, num = len(lines))

plt.plot(x, C, 'r', label='Originalsignal')
plt.xlabel('Zeit / ns')
plt.ylabel('Spannung / V')
plt.title('Messung 1')
plt.legend(loc='best')
plt.show()
Benutzeravatar
ThomasL
User
Beiträge: 1378
Registriert: Montag 14. Mai 2018, 14:44
Wohnort: Kreis Unna NRW

Wenn du pandas nicht benötigst, kannst du den Import auch weglassen, insbesondere das "pandas as pandas" macht keinen Sinn, üblich ist "import pandas as pd".
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Antworten