You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I find IPython notebooks a great way to work interactively, and it would be nice if inline plots could be interactive (e.g., letting you zoom, or having tool tips show more information). With matplotlib, though, inline plots are just images, so they cannot be interactive.
There's a new plotting library called Bokeh, an open-source project led by Continuum Analytics (the wonderful folks that make Anaconda), that looks really nice for making interactive plots like this. I'd like to try making an alternate backend one could specify with, say, control.set_backend("bokeh") that would make commands like bode() and nyquist() generate plots using Bokeh. The default could still be matplotlib, of course.
Any thoughts or suggestions for other libraries that might be useful for making interactive plots?
Outside of IPython notebooks, you can zoom-in, pan, etc. in Matplotlib plots. I just shared a link via issue #49 to matplotlib.backend_bases.MouseEvent for responding to clicks on points in these plots.
Perhaps there can be two major interactive use-cases: with and without IPython. The former case could be treated with Bokeh, and the latter case with Matplotlib and various GUI hooks that we create.
I use the following code in my ipython notebooks and it makes the plots
interactive (zooming, panning work; this is in the standard Anaconda
distribution on OSX 10.10):
import matplotlib as mlt
mlt.use('nbagg') # makes plots interactive for zooming.
I haven't tested it with python-control yet but I don't see why there would
be a problem.
Sawyer
Sawyer B. Fuller, Ph.D.
Harvard School of Engineering and Applied Science
Wyss Institute for Biologically Inspired Engineering http://people.seas.harvard.edu/~minster/
I find IPython notebooks a great way to work interactively, and it would
be nice if inline plots could be interactive (e.g., letting you zoom, or
having tool tips show more information). With matplotlib, though, inline
plots are just images, so they cannot be interactive.
There's a new plotting library called Bokeh http://bokeh.pydata.org, an
open-source project led by Continuum Analytics (the wonderful folks that
make Anaconda http://continuum.io/downloads), that looks really nice
for making interactive plots like this. I'd like to try making an alternate
backend one could specify with, say, control.set_backend("bokeh") that
would make commands like bode() and nyquist() generate plots using Bokeh.
The default could still be matplotlib, of course.
Any thoughts or suggestions for other libraries that might be useful for
making interactive plots?
Reply to this email directly or view it on GitHub #50.
@blinkminster, that is pretty slick! I never new about nbagg. (Incidentally, this also apparently works with the IPython magic %matplotlib nbagg.) I still might give the Bokeh library a try, but this is great to know about.
I am also wondering about this issue for my library and I have been also trying to find a good basis for this issue. So far I've been experimenting with Bokeh. Things are still wonky as an experiment but I just wanted to also get your opinion about the following prototype
There are some issues of course since I'm still learning JS magic but I guess it might serve as a basis. Though I don't follow the same structure as python-control the data will come from somewhere anyway for frequency responses. Hence, from the point on where one has the complex number array this can be used independently. Maybe python-control devs can use this and put more momentum to this kind of development?
Hello,
I teach control systems. I recently created an interactive interface with Bokeh for using in Google Colab similar to Sisotool (Matlab): https://github.com/lucasbellinaso/PythonSisoDesignApp
Still needs improvement.
Activity
slivingston commentedon Mar 20, 2015
Outside of IPython notebooks, you can zoom-in, pan, etc. in Matplotlib plots. I just shared a link via issue #49 to matplotlib.backend_bases.MouseEvent for responding to clicks on points in these plots.
Perhaps there can be two major interactive use-cases: with and without IPython. The former case could be treated with Bokeh, and the latter case with Matplotlib and various GUI hooks that we create.
blinkminster commentedon Mar 21, 2015
Clancy,
I use the following code in my ipython notebooks and it makes the plots
interactive (zooming, panning work; this is in the standard Anaconda
distribution on OSX 10.10):
import matplotlib as mlt
mlt.use('nbagg') # makes plots interactive for zooming.
I haven't tested it with python-control yet but I don't see why there would
be a problem.
Sawyer B. Fuller, Ph.D.
Harvard School of Engineering and Applied Science
Wyss Institute for Biologically Inspired Engineering
http://people.seas.harvard.edu/~minster/
On Fri, Mar 20, 2015 at 1:55 PM, Clancy Rowley notifications@github.com
wrote:
cwrowley commentedon Mar 21, 2015
@blinkminster, that is pretty slick! I never new about nbagg. (Incidentally, this also apparently works with the IPython magic
%matplotlib nbagg.) I still might give the Bokeh library a try, but this is great to know about.ilayn commentedon Jan 2, 2017
I am also wondering about this issue for my library and I have been also trying to find a good basis for this issue. So far I've been experimenting with Bokeh. Things are still wonky as an experiment but I just wanted to also get your opinion about the following prototype
http://nbviewer.jupyter.org/gist/ilayn/f8cf8b0a68c6839dbcc346884511e2ed
There are some issues of course since I'm still learning JS magic but I guess it might serve as a basis. Though I don't follow the same structure as python-control the data will come from somewhere anyway for frequency responses. Hence, from the point on where one has the complex number array this can be used independently. Maybe python-control devs can use this and put more momentum to this kind of development?
murrayrm commentedon Dec 28, 2018
See PR #204 and #209 for some initial implementations of this type of functionality.
lucasbellinaso commentedon Jan 13, 2021
Hello,
I teach control systems. I recently created an interactive interface with Bokeh for using in Google Colab similar to Sisotool (Matlab): https://github.com/lucasbellinaso/PythonSisoDesignApp
Still needs improvement.