Hi Jupyter Community,

I am interested in setting up some very simple, low-performance "live" 
plots using matplotlib. Think line plot updating at ~1 Hz. Simplicity and 
keeping the "static" matplotlib interface intact are priorities.

My current vision for this is to write a magic function, %rerun <time>. 
This would declare that the code in that cell should be re-run after a 
specified time, perhaps defaulting to 1 or 10 seconds. The notebook could 
block while the cell is being re-evaluated, but should not block while 
waiting. This would let me write something like:

>>> %rerun
>>> data = fetch_new_data() # gets data from external server
>>> plt.plot(data)
>>> plt.show()

and get a new plot every second or so.

I am wondering if someone can give me some advice on how best to implement 
this in the notebook framework... I am a long time user, but unfamiliar 
with the architecture "under the hood". If people can anticipate issues (or 
explain why this is a terrible idea) that would be most appreciated.

I am currently thinking of trying to catch the end of the cell execution, 
and at that time, spawning a thread. This thread would just sleep for the 
specified time, before waking up, calling for the (re)execution of the 
specified cell, and then dying. Calling the cell again would spawn a new 
thread that would re-start the cycle. At any point, by removing or 
commenting the %rerun line, the user could break the cycle.

That plan brings up a number of specific questions:
* how can I find out what cell code is being executed in?
* how can I programmatically execute code in a cell?
* are there issues with spawning threads from the nb kernel?

I have searched around a bit and not found much documentation or many 
examples that made sense to my uninitiated mind... so thanks much for any 
help.

Best,

TJ

-- 
You received this message because you are subscribed to the Google Groups 
"Project Jupyter" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jupyter/e85c1e1d-37e0-46af-825d-cda214d1e930%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to