ich bin neu hier und lerne seit einigen Wochen Python (2.7). Jetzt bin ich leider auf ein Problem gestoßen, welches ich alleine nicht lösen kann.
Ich möchte einen Punkt plotten und seinen Y-Wert über einen Slider steuern. Das Plotten und der Slider funktioniert, nur leider bewegt sich der Punkt nicht, weil der Wert des Sliders nicht an die Plot-Funktion übergeben wird.
Hier mein Code:
Code: Alles auswählen
import matplotlib.pyplot as plt
import time
from matplotlib.widgets import Slider
plt.ion()
fig, ax = plt.subplots()
punkt, = ax.plot(0,0,marker='o')
plt.show()
sollwert=0
def slidevent(value):
sollwert = value
return sollwert
sliderax = fig.add_axes([0.2, 0.02, 0.6, 0.03], axisbg='white')
slider = Slider(sliderax, 'Value', 0, 10, valinit=5)
slider.on_changed(slidevent)
slider.drawon = False
while True:
plt.pause(1)
punkt.set_ydata(sollwert)
plt.draw()
Ich habe das ganze auch noch mit der FuncAnimation versucht, leider mit dem selben Ergebnis. Hier der Code:
Code: Alles auswählen
import matplotlib.pyplot as plt
import matplotlib.animation as animation
from matplotlib.widgets import Slider
fig, ax = plt.subplots()
ax.set_xlim(0, 5)
ax.set_ylim(0, 5)
punkt, = ax.plot(2.5,2.5,marker='o')
global sollwert
sollwert = 2.5
def slidevent(value):
sollwert = value
return sollwert
sliderax = fig.add_axes([0.2, 0.02, 0.6, 0.03], axisbg='white')
slider = Slider(sliderax, 'Value', 0, 10, valinit=2.5)
slider.on_changed(slidevent)
slider.drawon = False
def update(i, soll):
punkt.set_ydata(soll)
return punkt,
ani = animation.FuncAnimation(fig, update, fargs=(sollwert,), interval=100)
plt.show()
Gruß
Martin