{ "cells": [ { "cell_type": "markdown", "id": "1a6c4055", "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": "9f47e0d9", "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": "3c7e4114", "metadata": { "execution": { "iopub.execute_input": "2026-07-01T08:30:19.220441Z", "iopub.status.busy": "2026-07-01T08:30:19.220255Z", "iopub.status.idle": "2026-07-01T08:30:19.885103Z", "shell.execute_reply": "2026-07-01T08:30:19.884494Z" } }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", " \n", " Network\n", " \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": "312414bf", "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": "58403932", "metadata": { "execution": { "iopub.execute_input": "2026-07-01T08:30:19.893456Z", "iopub.status.busy": "2026-07-01T08:30:19.893088Z", "iopub.status.idle": "2026-07-01T08:30:19.896878Z", "shell.execute_reply": "2026-07-01T08:30:19.896259Z" } }, "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": "5ae36579", "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": "2d5ae9a8", "metadata": { "execution": { "iopub.execute_input": "2026-07-01T08:30:19.898690Z", "iopub.status.busy": "2026-07-01T08:30:19.898503Z", "iopub.status.idle": "2026-07-01T08:30:19.904588Z", "shell.execute_reply": "2026-07-01T08:30:19.903952Z" } }, "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": "c56ce478", "metadata": { "execution": { "iopub.execute_input": "2026-07-01T08:30:19.906248Z", "iopub.status.busy": "2026-07-01T08:30:19.906045Z", "iopub.status.idle": "2026-07-01T08:30:19.933081Z", "shell.execute_reply": "2026-07-01T08:30:19.932494Z" } }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", " \n", " Network\n", " \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": "05f04fec", "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": "95d35afa", "metadata": { "execution": { "iopub.execute_input": "2026-07-01T08:30:19.941067Z", "iopub.status.busy": "2026-07-01T08:30:19.940864Z", "iopub.status.idle": "2026-07-01T08:30:19.943459Z", "shell.execute_reply": "2026-07-01T08:30:19.942970Z" } }, "outputs": [], "source": [ "# import IPython.display as ipd\n", "# ipd.display(ipd.Javascript(\n", "# f\"\"\"{vis.network_wrapper}.network.destroy()\"\"\"))" ] }, { "cell_type": "markdown", "id": "dab0ed5c", "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": "9f373750", "metadata": { "execution": { "iopub.execute_input": "2026-07-01T08:30:19.945151Z", "iopub.status.busy": "2026-07-01T08:30:19.944981Z", "iopub.status.idle": "2026-07-01T08:30:19.974403Z", "shell.execute_reply": "2026-07-01T08:30:19.973686Z" } }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", " \n", " Network\n", " \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": "74a765da", "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": "e9f823f1", "metadata": { "execution": { "iopub.execute_input": "2026-07-01T08:30:19.981828Z", "iopub.status.busy": "2026-07-01T08:30:19.981620Z", "iopub.status.idle": "2026-07-01T08:30:20.397549Z", "shell.execute_reply": "2026-07-01T08:30:20.396855Z" } }, "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.13.14" }, "widgets": { "application/vnd.jupyter.widget-state+json": { "state": { "095ccb135ed74483b2509da8500c0c52": { "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_ec4126fc20904f5489d6f74aec569b28", "msg_id": "", "outputs": [], "tabbable": null, "tooltip": null } }, "3e273b468fe543dc8229ae00c4bebe40": { "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 } }, "42225641c00545b38dea7ec9ca1395b9": { "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_507098bed07b447d9388a96a0475c319", "msg_id": "", "outputs": [], "tabbable": null, "tooltip": null } }, "507098bed07b447d9388a96a0475c319": { "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 } }, "56ecfe28394946508e6891b62646f931": { "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_84151e86680f421193910c149102baeb", "msg_id": "", "outputs": [], "tabbable": null, "tooltip": null } }, "7b32626770cd4cc2b4f25a975d8f095f": { "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_e48743f6f4a641bab3b01fea21c2ff64", "msg_id": "", "outputs": [], "tabbable": null, "tooltip": null } }, "84151e86680f421193910c149102baeb": { "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 } }, "843516ed88ce4d7c890efd90a39a8828": { "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 } }, "a591ef204c3a498a881db0941f3d501c": { "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_843516ed88ce4d7c890efd90a39a8828", "msg_id": "", "outputs": [], "tabbable": null, "tooltip": null } }, "c017d0b272a548059efd0c4287a35881": { "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_3e273b468fe543dc8229ae00c4bebe40", "msg_id": "", "outputs": [], "tabbable": null, "tooltip": null } }, "e48743f6f4a641bab3b01fea21c2ff64": { "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 } }, "ec4126fc20904f5489d6f74aec569b28": { "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 }