Francy arose from the necessity of having a lightweight framework for building interactive graphics, generated from GAP, running primarily on the web, primarily in a Jupyter Notebook. An initial attempt to re-use XGAP and port it was made, but the lack of a standardized data exchange format between GAP and the graphics renderer, and the simplistic initial requirements of the project were the basis for the creation of a new GAP package. Take a look at Francy functionality on these Jupyter Notebooks.
Francy has potentially many applications and can be used to provide a graphical representation of data structures, allowing one to navigate through and explore properties or relations of these structures. In this way, Francy can be used to enrich a learning environment where GAP provides a library of thousands of functions implementing algebraic algorithms as well as large data libraries of algebraic objects. FrancyMonoids and SubgroupLattice are some example packages using Francy.
Francy provides an interface to draw graphics using objects. This interface is based on simple concepts of drawing and graph theory, allowing the creation of directed and undirected graphs, trees, line charts, bar charts and scatter charts. These graphical objects are drawn inside a canvas that includes a space for menus and to display informative messages. Within the canvas it is possible to interact with the graphical objects by clicking, selecting, dragging and zooming.
This package requires the GAP packages JupyterKernel and json, all of which are distributed with GAP. Francy follows a similar installation procedure to JupyterKernel, so it requires Jupyter to be installed on your system. Please note, you need to run the installation commands from the same python version Jupyter is installed on. In order to install/update Francy, please run the following command to download the latest version available from https://pypi.org/:
mcmartins@local:~$ pip install jupyter_francy -U
It is necessary to enable Francy on your Jupyter Notebook installation:
mcmartins@local:~$ jupyter nbextension enable --py --sys-prefix jupyter_francy
For Jupyter Lab, please run:
mcmartins@local:~$ jupyter labextension build
Alternatively, if you want to run Francy only on Jupyter Lab, simply execute:
mcmartins@local:~$ jupyter labextension install jupyter-francy
This will load the module from https://npmjs.org. This approach should be used if you want to run Francy only on Jupyter Lab.
Francy requires a rendering package to display graphics. Francy uses Renderers based on D3.js and Graphviz, for rendering the semantic representation produced by the GAP package. The renderers can be swithed at any time using the user interface, by selecting 'Settings > Renderers' in the main menu. This library is distributed both as a browser module and as a Jupyter extension. The Jupyter extension can be used in Jupyter Notebook or Jupyter Lab, using the JupyterKernel and the MIME type 'application/vnd.francy+json' to render the document. Please check the JavaScript Documentation for more information.
generated by GAPDoc2HTML