I have a simple oscillatory animation with a parameter "amp", which I control
with a slider.
The control works (when I do a mouse-drag on the slider bar), but the slide
bar never actually changes it's position because the reset call fails.
I don't see why the global statement should have any effect.
I want the "amp" variable to be common to the slider and the animation.
I'll include the whole code, it's only about 30 lines of executable code:
====
"""
A simple example of an animated plot, controlled by a slider
"""
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
from matplotlib.widgets import Slider
fig, ax = plt.subplots()
amp = 5
freq = 1
t = np.arange(0.0, 2*np.pi*freq, 0.01)
print("len(t)=", len(t))
# INITIALIZE CURVE
line, = ax.plot(t, amp*np.sin(t), lw=4, color='purple')
# Setup slider
axcolor = 'lightgoldenrodyellow'
axamp = plt.axes([0.25, 0.15, 0.60, 0.03], axisbg=axcolor)
samp = Slider(axamp, 'Amp', 0.1, 10.0, valinit=amp)
def update(val):
global amp
amp = samp.val
# samp.set_val(amp)
# samp.reset() # if no argument given, the value of amp is not
changed.
# samp.reset(amp) # If used, amp is changed, the animation continues
with changed amp value,
# but the slider bar does
# not move and get the error "TypeError:
reset() takes exactly 1 argument (2 given)"
samp.on_changed(update)
def reset(event):
samp.reset()
## Do the animation
def animate(i):
line.set_ydata(amp*np.sin(t+(i/10.0))) # update the data
return line,
#Init only required for blitting to give a clean slate.
def init():
line.set_ydata(np.ma.array(t, mask=True))
return line,
ani = animation.FuncAnimation(fig, animate, np.arange(1, 100000),
init_func=init,
interval=20, repeat=True, repeat_delay=200, blit=True)
plt.show()
--
View this message in context:
http://matplotlib.1069221.n5.nabble.com/Possible-bug-in-slider-reset-tp44638p44640.html
Sent from the matplotlib - users mailing list archive at Nabble.com.
------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk
_______________________________________________
Matplotlib-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-users