Hallo!!
Folgendes Problem:
Ich habe ein Signal, welches 81s dauert (x:0,1,2....,81), grafisch dargestellt. Nun möchte ich aber den Nullpunkt auf den Wert bei 41s setzen (da ist ein Event) und dann -40s nach links und 40s nach rechts gehen. Der Graph soll sich dabei nicht ändern!!!
Also einfach nur die x-Achse um skalieren und bei 41s soll ein vertikaler Strich sein, um die Amplitude (beim Event) am neuen Nullpunkt genau sehen zu können.
Danke für eure Hilfe.
x-Achse skalieren ohne den Graph zu ändern
Also plt.xticks habe ich schon probiert, aber da verschiebt er den Graphen mit.
Okay, den vertikalen Strich habe ich jetzt wie folgt gemacht:
Okay, den vertikalen Strich habe ich jetzt wie folgt gemacht:
Code: Alles auswählen
plt.axvline(41, color='k', linestyle='--')
@Ede1994: Also wenn ich Dich richtig verstanden habe dann willst Du nichts an der X-Achse ändern, sondern die *Daten* um 41 Sekunden verschieben, damit das Ereignis am Nullpunkt liegt.
- Sr4l
- User
- Beiträge: 1091
- Registriert: Donnerstag 28. Dezember 2006, 20:02
- Wohnort: Kassel
- Kontaktdaten:
Daten verschieben:
Label ausgetauscht (xticks)
xticks ist nicht so ganz einfach und muss für andere Daten immer angespast werden, dafür kann man jedoch alles denkbare an eine Achse schreiben was man will und auch in den Abständen die man will.
Code: Alles auswählen
import numpy as np
import matplotlib.pyplot as plt
x = np.array([1,3,5,7,11])
y = np.array([0,1,2,3,4])
plt.plot(x,y)
plt.plot(x-10,y) #verschoben (daten verändert)
plt.show()
Code: Alles auswählen
import numpy as np
import matplotlib.pyplot as plt
x = np.array([1,2,4,8,16])
y = np.array([0,1,2,3,4])
plt.plot(x,y)
plt.xticks( np.arange(min(x),max(x),1), np.arange(min(x)-10,max(x)-10,1) )
plt.show()