Hi
I currently have a plot that gets update in a loop with data from a
remote system. It works and looks great. (matplotlib rocks!) I currently
use%matplotlib inline
Now I need to make the graph interactive. By interactive I mean I would
like the user to be able to1. move the mouse to get info about that point in the graph
2. Click on a point on the graph to do some sort of drill down. I¹ll
probably need to fetch additional data, to display. The data might be
text or some sort of table to display
3. Scroll the graph along it¹s x and y axis
4. Add a couple of widgets that let users select parameters of the graph
or underlying data setGoogling around I found people mention several choices
1) %matplotlib notebook¹ and the nbagg backend, how ever I have not been
able to find any documentation or code tutorials, or examples2) Plot.ly Jupyter notebook tutorial in Python
3) Python widgets for the Jupiter Notebook
GitHub - jupyter-widgets/ipywidgets: Interactive Widgets for the Jupyter NotebookAny comments or suggestions would be appreciated.
Kind regards
Andy
Hi Andy
Please just try replacing %matplotlib inline with %matplitlib notebook which should give you a complete interactive backend in the notebook.
It’s by no means as nicely documented as it should be, but I use it on a regular basis with matplotlib 1.5.1 and don’t have any major issues. If you see any issues
please report them here or on the github bug tracker.
You can use the IPython widgets together with the notebook backend with the caveat that the interactive slider has to be defined in a new cell following the figure due to a bug see https://gist.github.com/jenshnielsen/20d9bf3fa40b309ad865 for an example
Hope this is useful
Jens
···
On Sat, 27 Feb 2016 at 03:04 Andy Davidson <Andy@…4711…> wrote:
Hi
I currently have a plot that gets update in a loop with data from a
remote system. It works and looks great. (matplotlib rocks!) I currently
use
%matplotlib inline
Now I need to make the graph interactive. By interactive I mean I would
like the user to be able to
- move the mouse to get info about that point in the graph
- Click on a point on the graph to do some sort of drill down. I¹ll
probably need to fetch additional data, to display. The data might be
text or some sort of table to display
- Scroll the graph along it¹s x and y axis
- Add a couple of widgets that let users select parameters of the graph
or underlying data set
Googling around I found people mention several choices
- Œ%matplotlib notebook¹ and the nbagg backend, how ever I have not been
able to find any documentation or code tutorials, or examples
- Python widgets for the Jupiter Notebook
Any comments or suggestions would be appreciated.
Kind regards
Andy
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users
Hi Jens
Thanks. %matplitlib notebook looks great!. As I move the mouse around I see values for x, and y . Any idea how I can get programmatic access to the mouse events? I.E. When a user clicks I need to fetch some additional info.
I am sure there are many other things I’ll eventually want to do. For example I have several different lines on the same graph. I want to make it easy for the user to select values on a give line not just some random spot
Are there any other code examples or documentation?
Kind Regards
Andy
···
From: Jens Nielsen <jenshnielsen@…287…>
Date: Saturday, February 27, 2016 at 12:45 AM
To: Andrew Davidson <Andy@…4712…>, <matplotlib-users@…1739…ge.net>
Subject: Re: [Matplotlib-users] how to create interactive plots in jupyter python3 notebook?
Hi Andy
Please just try replacing %matplotlib inline with %matplitlib notebook which should give you a complete interactive backend in the notebook.
It’s by no means as nicely documented as it should be, but I use it on a regular basis with matplotlib 1.5.1 and don’t have any major issues. If you see any issues
please report them here or on the github bug tracker.
You can use the IPython widgets together with the notebook backend with the caveat that the interactive slider has to be defined in a new cell following the figure due to a bug see https://gist.github.com/jenshnielsen/20d9bf3fa40b309ad865 for an example
Hope this is useful
Jens
On Sat, 27 Feb 2016 at 03:04 Andy Davidson <Andy@…4711…> wrote:
Hi
I currently have a plot that gets update in a loop with data from a
remote system. It works and looks great. (matplotlib rocks!) I currently
use
%matplotlib inline
Now I need to make the graph interactive. By interactive I mean I would
like the user to be able to
- move the mouse to get info about that point in the graph
- Click on a point on the graph to do some sort of drill down. I¹ll
probably need to fetch additional data, to display. The data might be
text or some sort of table to display
- Scroll the graph along it¹s x and y axis
- Add a couple of widgets that let users select parameters of the graph
or underlying data set
Googling around I found people mention several choices
- Œ%matplotlib notebook¹ and the nbagg backend, how ever I have not been
able to find any documentation or code tutorials, or examples
- Python widgets for the Jupiter Notebook
Any comments or suggestions would be appreciated.
Kind regards
Andy
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users
Unfortunately it doesn't work perfectly yet, see:
But the following code can be used as a workaround, using an IPython widget
to display the event data:
%pylab notebook
import ipywidgets as widgets
fig, ax = plt.subplots()
ax.plot(np.random.rand(10))
w = widgets.HTML()
def onclick(event):
w.value = 'button=%d, x=%d, y=%d, xdata=%f, ydata=%f'%(
event.button, event.x, event.y, event.xdata, event.ydata)
cid = fig.canvas.mpl_connect('button_press_event', onclick)
display(w)
Note, however, that at least for me, the interactive figures in the
notebook are getting auto-closed for reasons I don't understand:
notebook backend figures close spontaneously · Issue #6075 · matplotlib/matplotlib · GitHub.
Cheers,
···
On Sat, Feb 27, 2016 at 1:18 PM, Andy Davidson < Andy@...4711...> wrote:
Thanks. %matplitlib notebook looks great!. As I move the mouse around I
see values for x, and y . Any idea how I can get programmatic access to the
mouse events? I.E. When a user clicks I need to fetch some additional info.I am sure there are many other things I’ll eventually want to do. For
example I have several different lines on the same graph. I want to make it
easy for the user to select values on a give line not just some random spotAre there any other code examples or documentation?
--
Fernando Perez (@fperez_org; http://fperez.org)
fperez.net-at-gmail: mailing lists only (I ignore this when swamped!)
fernando.perez-at-berkeley: contact me here for any direct mail
Hi all,
Just to let you know I found this conversation and tips very useful… I just wish there was a nice complete tutorial somewhere (web, book) about everything there is to know about jupyter, widgets….etc. I started a github repo myself where I try
to gather tips here and there (like today in those emails) into one place.
There isn’t too much yet (https://github.com/ornlpython/ipython_notebook_101 ) and also I should renamed it “jupyter_notebook_101” but it’s a start. If that can help somebody
else !
Jean
···
On Sat, Feb 27, 2016 at 1:18 PM, Andy Davidson
<Andy@…4711…> wrote:
Thanks. %matplitlib notebook looks great!. As I move the mouse around I see values for x, and y . Any idea how I can get programmatic access to the mouse events? I.E. When a user clicks I need to fetch some additional info.
I am sure there are many other things I’ll eventually want to do. For example I have several different lines on the same graph. I want to make it easy for the user to select values on a give line not just some random spot
Are there any other code examples or documentation?
Unfortunately it doesn’t work perfectly yet, see:
https://github.com/jupyter/notebook/issues/244
https://github.com/matplotlib/matplotlib/issues/4582
But the following code can be used as a workaround, using an IPython widget to display the event data:
%pylab notebook
import ipywidgets as widgets
fig, ax = plt.subplots()
ax.plot(np.random.rand(10))
w = widgets.HTML()
def onclick(event):
w.value = 'button=%d, x=%d, y=%d, xdata=%f, ydata=%f'%(
event.button, event.x, event.y, event.xdata, event.ydata)
cid = fig.canvas.mpl_connect('button_press_event', onclick)
display(w)
Note, however, that at least for me, the interactive figures in the notebook are getting auto-closed for reasons I don’t understand: https://github.com/matplotlib/matplotlib/issues/6075.
Cheers,
–
Fernando Perez (@fperez_org;
http://fperez.org)
fperez.net-at-gmail: mailing lists only (I ignore this when swamped!)
fernando.perez-at-berkeley: contact me here for any direct mail