Since my original post didn't receive any response, I thought I'd 
illustrate the type of thing that I'm trying to accomplish. The general 
idea, of course, is to mix Python and Javascript in the Jupyter notebook. 
In this way, output generated by Python can be made interactive using 
Javascript. There are lots of possibilities; a few examples are included in 
Brian Coffey's tutorial that I linked to in my first post. 

I've got a few things I've generated myself along these lines but the first 
thing I'm somewhat happy with involves the dynamic illustration of an orbit 
on top of a Julia set generated with Python. You can see the result here:
http://marksmath.org/visualization/InteractiveBasinsInJupyter/

One thing that's nice about this approach is that the interactivity is 
maintained and active in the exported HTML version. Thus, if you scroll 
down to one of the images in that webpage and hover your mouse over that 
image, you should see an orbit that's updated dynamically as you move the 
mouse. If you want the full blown Jupyter notebook together with the 
ancillary code, you can grab that too:
http://marksmath.org/visualization/InteractiveBasinsInJupyter.zip


While I'm somewhat happy with this, the question remains - why won't MathJS 
and newer versions of D3 load into the notebook? It there a way to get 
around this limitation?

It's pretty easy to test when a library has loaded - simply call an alert 
on any object exported from the library to the global namespace. For 
example, here's how to (try to) load D3:

from IPython.core.display import HTML
HTML('<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/4.0.0/d3.js
"></script>')

In a separate cell, you can then do:

HTML("<script>alert(d3)</script>")



You should get an alert box that says [object Object], since d3 is an 
object, but you don't. It works fine with the older version of D3, just 
change the 4.0.0 to 3.5.17.

The same problem happens with MathJS. As a result, I ended up writing my 
own little complex class for this example including polynomial evaluation 
with Horner's method. Not that big deal for this example, but MathJS 
includes a lot of functionality that might be nice to incorporate for these 
types of examples. It also includes a parser that would make it very easy 
to translate mathematical expressions from Python to Javascript.

-- 
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/4d5ccce7-420f-4e4d-8cfe-e75d74d1dc9a%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to