{ "cells": [ { "cell_type": "markdown", "id": "cb26255d", "metadata": {}, "source": [ "# Advanced Model Visualization\n", "\n", "When visualizing a model using the `show` API, there are a lot of layout options. In this notebook we will show how to edit the way that a visualization looks, and how to export it in various formats. There are also visualization features that are specific to schedulers, results and the simulator. These will be explored in the respective notebooks on these topics.\n", "\n", "**Note:** This notebook does not render properly in the HTML docs." ] }, { "cell_type": "markdown", "id": "9f81ee55", "metadata": {}, "source": [ "## Javascript visualization\n", "Remember the car model from the introduction? You will notice that it does not have the same colors as it had in the introduction notebook. The reason for this is that in the introduction, we specified a different **Layout**." ] }, { "cell_type": "code", "execution_count": 1, "id": "c1c21649", "metadata": { "execution": { "iopub.execute_input": "2026-04-16T05:27:55.610057Z", "iopub.status.busy": "2026-04-16T05:27:55.609870Z", "iopub.status.idle": "2026-04-16T05:27:56.056519Z", "shell.execute_reply": "2026-04-16T05:27:56.055891Z" } }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", " \n", " Network\n", " \n", " \n", " \n", " \n", " \n", "
\n", " \n", " \n", " \n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from stormvogel import *\n", "\n", "show(examples.create_car_mdp())\n", "# show(examples.create_car_mdp(), show_editor=True) # with layout editor" ] }, { "cell_type": "markdown", "id": "3f52fa8b", "metadata": {}, "source": [ "### Basic editing\n", "Let's edit the layout! The first thing that you need to do is open the layout editor by adding `show_editor = True` to the call to `show`.\n", "A menu will open up with a lot of different sections that can be opened by clicking on them. First of all, let's try to alter the colors of states and actions. Click on 'states' or 'actions' and then adjust 'bg color' by clicking on the box with a color. A color picker will open up. You will notice that there are a lot of different options, feel free to play around with them and see the changes to the model in real time.\n", "\n", "### Dragging nodes\n", "You can also change the position of nodes by selecting them in the displayed network, and moving them around. This does not require the editor, but your changes here can only be saved if you are using it.\n", "\n", "### Exploring\n", "Go to 'misc', set 'explore' to True and press the 'Reload' button. Now you can explore the model. Clicking on a node reveals its successors.\n", "\n", "### Edit groups\n", "In the model in the introduction notebook, states with different labels had different colors, but right now we only have a single group for states, and a single group for actions. You can change this by going to 'edit_groups'. By default, there are two groups: one for states and one for actions.\n", "* Remove both of them from the list by pressing the cross next to them. Now press the reload button at the bottom, and you will see that 'states' and 'actions' are removed from the editing menu.\n", "* Now open 'edit_groups' again and press the empty box. It will give you some options that correspond to the labels of the states that are present. Select 'green_light', 'red_light' and 'accident'. Press reload again. Now you can edit these groups and create a similar layout to the introduction notebook.\n", "\n", "### Saving layouts (including node positions)\n", "It is always useful to save your layout so that it won't be gone once you re-execute the cell. An easy way of doing this is by going to 'saving', and providing a path to store the json file that contains your layout. Then press 'Save'. If you re-execute the cell, and go to saving, enter the same name, and press 'Load', your layout will be back. In practice, it is more useful to also be able to load a layout without having to go through the menu. You can do this easily by adding `layout=Layout(\"filename.json\")` the call to show.\n", "\n", "### Exporting visualizations\n", "Visualizations in stormvogel are rendered to HTML. This means that you can also export them and embed them in other web pages. You can also export it to a vector image in svg or pdf format. The latter is easy to include in your latex projects by `\\includegraphics{export.pdf}`.\n", "\n", "**Note:** There are additional model visualization features for schedulers and results, but they will be explained in their respective notebooks." ] }, { "cell_type": "code", "execution_count": 2, "id": "d44eedf4", "metadata": { "execution": { "iopub.execute_input": "2026-04-16T05:27:56.063162Z", "iopub.status.busy": "2026-04-16T05:27:56.062824Z", "iopub.status.idle": "2026-04-16T05:27:56.065787Z", "shell.execute_reply": "2026-04-16T05:27:56.065198Z" } }, "outputs": [], "source": [ "# show(examples.create_car_mdp(), show_editor=True\n", "# This enables the layout in \"layouts/car.json\", and turns on the layout editor.\n", "\n", "# Export the visualization in different formats:\n", "# vis.export(\"html\", \"vis_html\")\n", "# vis.export(\"svg\", \"vis_svg\")\n", "# vis.export(\"pdf\", \"vis_pdf\")" ] }, { "cell_type": "markdown", "id": "86decaac", "metadata": {}, "source": [ "### Advanced editing\n", "If the layout editor does not provide a visualization option that you need, it is also possible to edit the layout manually. The following code shows you what the default layout looks like. `Layout.layout` is a dictionary that stores all the layout information. You could edit this directly, but this can get annoying because it is a nested dictionary. We provide a method `set_value` to make this easier. Alternatively, If you have a lot of options that you want to change at the same time, it is probably easier to overwrite `Layout.layout` directly.\n", "\n", "Try outcommenting the third line in the next cell, and see the changes. under \"groups\". Then see the changes in the model by re-executing the final cell.\n", "\n", "The structure of the layout is derived from the vis.js library (that is also used to display the models). There are many other options that can be changed but which are not in the layout editor. For more information, we refer to the [vis.js documentation](https://visjs.github.io/vis-network/docs/network/#options)." ] }, { "cell_type": "code", "execution_count": 3, "id": "60b4fadd", "metadata": { "execution": { "iopub.execute_input": "2026-04-16T05:27:56.067484Z", "iopub.status.busy": "2026-04-16T05:27:56.067288Z", "iopub.status.idle": "2026-04-16T05:27:56.073143Z", "shell.execute_reply": "2026-04-16T05:27:56.072536Z" } }, "outputs": [ { "data": { "text/plain": [ "{'__fake_macros': {'__group_macro': {'borderWidth': 1,\n", " 'color': {'background': 'white',\n", " 'border': 'black',\n", " 'highlight': {'background': 'white', 'border': 'red'}},\n", " 'shape': 'ellipse',\n", " 'mass': 1,\n", " 'font': {'color': 'black', 'size': 14}}},\n", " 'edit_groups': {'groups': ['states', 'actions']},\n", " 'groups': {'actions': {'shape': 'box', 'color': {'background': 'lightblue'}},\n", " 'scheduled_actions': {'shape': 'box',\n", " 'color': {'background': 'pink', 'border': 'red'}},\n", " 'states': {'color': {'background': 'orange'}}},\n", " 'reload_button': False,\n", " 'edges': {'arrows': 'to',\n", " 'font': {'color': 'black',\n", " 'size': 14,\n", " 'strokeColor': 'white',\n", " 'strokeWidth': 2},\n", " 'color': {'color': 'black'},\n", " 'width': 1},\n", " 'numbers': {'visible': True,\n", " 'fractions': True,\n", " 'digits': 5,\n", " 'denominator_limit': 1000},\n", " 'results': {'show_results': True,\n", " 'result_symbol': '☆',\n", " 'result_colors': True,\n", " 'min_result_color': '#ffffff',\n", " 'max_result_color': '#ff0000'},\n", " 'state_properties': {'show_ids': False,\n", " 'show_rewards': True,\n", " 'reward_symbol': '€',\n", " 'show_zero_rewards': True,\n", " 'show_observations': True,\n", " 'observation_symbol': 'ʘ'},\n", " 'layout': {'randomSeed': 5},\n", " 'misc': {'enable_physics': True,\n", " 'width': 800,\n", " 'height': 300,\n", " 'explore': False},\n", " 'saving': {'relative_path': True,\n", " 'filename': 'layouts/NAME.json',\n", " 'save_button': False,\n", " 'load_button': False},\n", " 'positions': {},\n", " 'physics': True,\n", " 'autoResize': True}" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "my_layout = layout.DEFAULT()\n", "my_layout.layout[\"groups\"][\"states\"] = {}\n", "my_layout.set_value([\"groups\", \"states\", \"color\", \"background\"], \"orange\")\n", "my_layout.layout" ] }, { "cell_type": "code", "execution_count": 4, "id": "a19969c1", "metadata": { "execution": { "iopub.execute_input": "2026-04-16T05:27:56.075018Z", "iopub.status.busy": "2026-04-16T05:27:56.074846Z", "iopub.status.idle": "2026-04-16T05:27:56.106456Z", "shell.execute_reply": "2026-04-16T05:27:56.105843Z" } }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", " \n", " Network\n", " \n", " \n", " \n", " \n", " \n", "
\n", " \n", " \n", " \n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "show(examples.create_car_mdp())" ] }, { "cell_type": "markdown", "id": "1155c6b3", "metadata": {}, "source": [ "### Javascript injection\n", "If you want to customize the visualization even more, you can modify the source code, or you can use Javascript injection from a notebook. Yous can always use `IPython.display` to execute JavaScript code, and `f\"{vis.network_wrapper}.network\"` to retrieve the `vis.js` Network object. Also see `html_generation.py` and the documentation of `vis.js`.\n", "\n", "Here is a small example of javascript injection that destroys the network." ] }, { "cell_type": "code", "execution_count": 5, "id": "abe42eb1", "metadata": { "execution": { "iopub.execute_input": "2026-04-16T05:27:56.113330Z", "iopub.status.busy": "2026-04-16T05:27:56.113096Z", "iopub.status.idle": "2026-04-16T05:27:56.116003Z", "shell.execute_reply": "2026-04-16T05:27:56.115360Z" } }, "outputs": [], "source": [ "# import IPython.display as ipd\n", "# ipd.display(ipd.Javascript(\n", "# f\"\"\"{vis.network_wrapper}.network.destroy()\"\"\"))" ] }, { "cell_type": "markdown", "id": "0c8bd3df", "metadata": {}, "source": [ "## Positioning algorithms\n", "We can use positioning algorithms from `networkx` to set the positions of nodes in the visualization, or create our own. Check out the [networkx documentation](https://networkx.org/documentation/stable/reference/drawing.html#module-networkx.drawing.layout) for a list of positioning algorithms." ] }, { "cell_type": "code", "execution_count": 6, "id": "308ab144", "metadata": { "execution": { "iopub.execute_input": "2026-04-16T05:27:56.117822Z", "iopub.status.busy": "2026-04-16T05:27:56.117633Z", "iopub.status.idle": "2026-04-16T05:27:56.148350Z", "shell.execute_reply": "2026-04-16T05:27:56.147710Z" } }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", " \n", " Network\n", " \n", " \n", " \n", " \n", " \n", "
\n", " \n", " \n", " \n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from stormvogel import *\n", "import networkx as nx\n", "\n", "\n", "def positioning(G):\n", " # return nx.bfs_layout(G, start=0) # Good for DAGs, we have to specify start=0\n", " # return nx.kamada_kawai_layout(G) # Good overal\n", " return nx.circular_layout(G)\n", "\n", "\n", "show(examples.create_car_mdp(), pos_function=positioning, pos_function_scaling=300)" ] }, { "cell_type": "markdown", "id": "c565ddf1", "metadata": {}, "source": [ "## Matplotlib visualization\n", "Alternatively, we can also use matplotlib to display our models if we tell stormvogel to use \"mpl\" as the engine. The support for this is more limited." ] }, { "cell_type": "code", "execution_count": 7, "id": "3d567576", "metadata": { "execution": { "iopub.execute_input": "2026-04-16T05:27:56.155280Z", "iopub.status.busy": "2026-04-16T05:27:56.155056Z", "iopub.status.idle": "2026-04-16T05:27:56.614284Z", "shell.execute_reply": "2026-04-16T05:27:56.613704Z" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "show(examples.create_car_mdp(), engine=\"mpl\")" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.13" }, "widgets": { "application/vnd.jupyter.widget-state+json": { "state": { "0b79d75e9f1f4c7dab7c993633c7dada": { "model_module": "@jupyter-widgets/output", "model_module_version": "1.0.0", "model_name": "OutputModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/output", "_model_module_version": "1.0.0", "_model_name": "OutputModel", "_view_count": null, "_view_module": "@jupyter-widgets/output", "_view_module_version": "1.0.0", "_view_name": "OutputView", "layout": "IPY_MODEL_6f2fbf4cdb4c4297a6486096fb629a6e", "msg_id": "", "outputs": [], "tabbable": null, "tooltip": null } }, "31f931314b8345bfa87342d8c145d144": { "model_module": "@jupyter-widgets/output", "model_module_version": "1.0.0", "model_name": "OutputModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/output", "_model_module_version": "1.0.0", "_model_name": "OutputModel", "_view_count": null, "_view_module": "@jupyter-widgets/output", "_view_module_version": "1.0.0", "_view_name": "OutputView", "layout": "IPY_MODEL_ef797c236a6d434395ecc6dee90d1483", "msg_id": "", "outputs": [], "tabbable": null, "tooltip": null } }, "343b407fecac4006b0c1d587f63585be": { "model_module": "@jupyter-widgets/output", "model_module_version": "1.0.0", "model_name": "OutputModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/output", "_model_module_version": "1.0.0", "_model_name": "OutputModel", "_view_count": null, "_view_module": "@jupyter-widgets/output", "_view_module_version": "1.0.0", "_view_name": "OutputView", "layout": "IPY_MODEL_5967ad1aff27422a923cb1c3e4f0395c", "msg_id": "", "outputs": [], "tabbable": null, "tooltip": null } }, "37662a1c35f14bfe9783e7e82961eaa4": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "5795c4a93f7f4471bc91d7acff941cf1": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "5967ad1aff27422a923cb1c3e4f0395c": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "635162ac237c420d9eec7f4afc7213e3": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "6f2fbf4cdb4c4297a6486096fb629a6e": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "77cc98a6babd4383b02a6c8f93327802": { "model_module": "@jupyter-widgets/output", "model_module_version": "1.0.0", "model_name": "OutputModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/output", "_model_module_version": "1.0.0", "_model_name": "OutputModel", "_view_count": null, "_view_module": "@jupyter-widgets/output", "_view_module_version": "1.0.0", "_view_name": "OutputView", "layout": "IPY_MODEL_5795c4a93f7f4471bc91d7acff941cf1", "msg_id": "", "outputs": [], "tabbable": null, "tooltip": null } }, "7a2cb470b0744511b4258b5dc5be8cbb": { "model_module": "@jupyter-widgets/output", "model_module_version": "1.0.0", "model_name": "OutputModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/output", "_model_module_version": "1.0.0", "_model_name": "OutputModel", "_view_count": null, "_view_module": "@jupyter-widgets/output", "_view_module_version": "1.0.0", "_view_name": "OutputView", "layout": "IPY_MODEL_37662a1c35f14bfe9783e7e82961eaa4", "msg_id": "", "outputs": [], "tabbable": null, "tooltip": null } }, "dca1e4028f7a49098e42b7a7eaab9e47": { "model_module": "@jupyter-widgets/output", "model_module_version": "1.0.0", "model_name": "OutputModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/output", "_model_module_version": "1.0.0", "_model_name": "OutputModel", "_view_count": null, "_view_module": "@jupyter-widgets/output", "_view_module_version": "1.0.0", "_view_name": "OutputView", "layout": "IPY_MODEL_635162ac237c420d9eec7f4afc7213e3", "msg_id": "", "outputs": [], "tabbable": null, "tooltip": null } }, "ef797c236a6d434395ecc6dee90d1483": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } } }, "version_major": 2, "version_minor": 0 } } }, "nbformat": 4, "nbformat_minor": 5 }