.. _nbvizjsrst: ======================================== Javascript library in a notebook: viz.js ======================================== .. only:: html **Links:** :download:`notebook `, :downloadlink:`html `, :download:`PDF `, :download:`python `, :downloadlink:`slides `, :githublink:`GitHub|_doc/notebooks/nb_vizjs.ipynb|*` Tries `vizjs `__ in a notebook. This is a simple way to show a graph defined with the `DOT language `__. `vizjs `__ compiles `Graphviz `__ was compiled into javascript with `emscripten `__. .. code:: ipython3 from jyquickhelper import add_notebook_menu add_notebook_menu() .. contents:: :local: viz.js ------ .. code:: ipython3 from jyquickhelper import RenderJS css = None libs = ['http://www.xavierdupre.fr/js/vizjs/viz-lite.js'] script = """ var svgGraph = Viz("digraph { a -> b; }"); document.getElementById('__ID__').innerHTML = svgGraph; """ jr = RenderJS(script, css=css, libs=libs) jr .. raw:: html
.. code:: ipython3 print(jr._repr_html_()) .. parsed-literal::
wrapped into RenderJsDot ------------------------ The previous script was wraps into a class in this module. .. code:: ipython3 from jyquickhelper import RenderJsDot dot = """ digraph { d[label="longer label"]; a -> b -> c; b -> d; } """ RenderJsDot(dot) .. raw:: html
.. code:: ipython3 print(RenderJsDot(dot)._repr_html_()) .. parsed-literal::
d3 graphviz ----------- The graph can become dynamic by using `d3-graphviz `__. I took the minified version available here `d3-graphviz.min.js `__ showing up at this example `d3-graphviz Basic Example `__. .. code:: ipython3 css = None libs = [dict(path="http://www.xavierdupre.fr/js/d3/d3.v4.min.js", name="d3", exports="d3"), 'http://www.xavierdupre.fr/js/vizjs/viz-lite.js', 'http://www.xavierdupre.fr/js/d3graphviz/d3-graphviz.min.js'] script = """ d3.select("#__ID__").graphviz() .fade(false) .renderDot('digraph {a -> b}'); """ jr = RenderJS(script, css=css, libs=libs) jr .. raw:: html
.. code:: ipython3 print(jr._repr_html_()) .. parsed-literal::
Not really working.