controller#
- class Controls(slider_formats=None, play_buttons=False, play_button_pos='right', use_ipywidgets=None, use_cache=True, **kwargs)[source]#
Bases:
object
Manager of many interactive functions.
- add_kwargs(kwargs, slider_formats=None, play_buttons=None)[source]#
Add kwargs to the controller.
If you pass a redundant kwarg it will just be overwritten maybe should only raise a warning rather than an error?.
need to implement matplotlib widgets also a big question is how to dynamically update the display of matplotlib widgets.
- control_figures#
Storage for figures made of matplotlib sliders.
- params#
Parameters in the controller, see Custom Callbacks and Accessing Parameter Values.
- register_callback(callback, params=None, eager=False)[source]#
Register a callback to be called anytime one of the specified params changes.
- Parameters:
- callbackcallable
A function called. Should accept all of the parameters specified by params as a kwargs.
- paramsstr, list of str, or None
The params to be passed to the callback. If None then all params currently registered with this controls object will be used.
- eagerbool, default: False
If True, call the callback immediately upon registration
- save_animation(filename, fig, param, interval=20, func_anim_kwargs=None, N_frames=None, **kwargs)[source]#
Save an animation over one of the parameters controlled by this
Controls
object.- Parameters:
- filenamestr
Where to save the animation
- figfigure
The figure to animate.
- paramstr
the name of the kwarg to use to animate
- intervalint, default: 2o
interval between frames in ms
- func_anim_kwargsdict, optional
kwargs to pass the creation of the underlying FuncAnimation
- N_framesint
Only used if the param is a matplotlib slider that was created without a valstep argument. This will only be relevant if you passed your own matplotlib slider as a kwarg when plotting. If needed but not given it will default to a value of 200.
- **kwargs
Passed through to anim.save
- Returns:
- animmatplotlib.animation.FuncAniation
- slider_updated(change, key, values)[source]#
Call the slider updated function special casing vmin/vmax.
Not sure why this is public - users should NOT call this directly.
thin wrapper to enable splitting of special cased range sliders. e.g. of
vmin_vmax
->vmin
andvmax
. In the future maybe generalize this to any range slider with an underscore in the name?.
- gogogo_controls(kwargs, controls, display_controls, slider_formats, play_buttons, extra_controls=None)[source]#
Create a new controls object.
This should be private - users should NOT use this.
- prep_scalars(kwarg_dict, **kwargs)[source]#
Process potentially scalar arguments.
This allows for passing in slider shorthands for these arguments, and for passing indexed controls objects for them.
- Parameters:
- kwarg_dictdict
The kwargs passed to the calling functions
- kwargs
The arguments to process
- Returns:
- funcsdict
The processed arguments. Re-assign the args as
s = funcs['s']
to make use of any autogenerated functions to connect callbacks to these scalar values.- extra_ctrlslist of Controls
Any extra controls objects that need to be used. Useful for
gogogo_controls
- param_excluderfunction
A function to exclude any scalar kwargs we added from params. Use this in the update functions to avoid calling user provided functions with the kwargs that we added here.