ich möchte gerne zwei Funktionen in einem Plot darstellen. Das Ausgangsbeispiel ist dieses hier (Quelle:http://matplotlib.org/examples/animatio ... decay.html ):
Code: Alles auswählen
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
def data_gen():
t = data_gen.t
cnt = 0
while cnt < 1000:
cnt+=1
t += 0.05
yield t, np.sin(2*np.pi*t) * np.exp(-t/10.)
data_gen.t = 0
fig, ax = plt.subplots()
line, = ax.plot([], [], lw=2)
ax.set_ylim(-1.1, 1.1)
ax.set_xlim(0, 5)
ax.grid()
xdata, ydata = [], []
def run(data):
# update the data
t,y = data
xdata.append(t)
ydata.append(y)
xmin, xmax = ax.get_xlim()
if t >= xmax:
ax.set_xlim(xmin, 2*xmax)
ax.figure.canvas.draw()
line.set_data(xdata, ydata)
return line,
ani = animation.FuncAnimation(fig, run, data_gen, blit=True, interval=10,
repeat=False)
plt.show()
Wenn ich einfach so Funktionen darstellen will, dann kann ich einfach das machen:
plt.plot (x1, y1, param1, x2, y2, param2, x3, y3, param3)
Wobei x1..3 und y1..3 immer Arrays mit Werten sind und alle Arrays die gleiche Dimension haben müssen. Soweit ok. Leider funktioniert das mit der Anweisung "line, = ax.plot([], [], lw=2)" nicht. Ich hatte es zunächst so probiert:
line, = ax.plot([], [], [], [])
Das wird nicht akzeptiert.
Dann hab ich versucht, in einen der Kästen immer mehrere Funktionspaare reinzutun:
line.set_data( (x1,x2, x3), (y1, y2, y3) )
Das zeigt zwar alle Funktionen der Plots an - ABER es werden zwischen dem letzten Punkt von (x1, y1) und dem ersten Punkt von (x2, y2) auch eine Verbindungslinie gezeichnet - ebenso zw. den Punkten (x2_letzer, y2_letzer) und (x3_erster, y3_erster). Also kann ich so die Werte auch nicht übergeben .
Ich hab echt keine Idee mehr, wie ich unterschiedliche Funktionen in einen Plot anzeigen kann