{ "cells": [ { "cell_type": "markdown", "id": "b82eb84b", "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": "0f22fddb", "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": "096fc258", "metadata": { "execution": { "iopub.execute_input": "2026-07-01T08:30:24.584955Z", "iopub.status.busy": "2026-07-01T08:30:24.584760Z", "iopub.status.idle": "2026-07-01T08:30:25.289539Z", "shell.execute_reply": "2026-07-01T08:30:25.288995Z" } }, "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": "588993b5", "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": "19a8e936", "metadata": { "execution": { "iopub.execute_input": "2026-07-01T08:30:25.298946Z", "iopub.status.busy": "2026-07-01T08:30:25.298569Z", "iopub.status.idle": "2026-07-01T08:30:25.301373Z", "shell.execute_reply": "2026-07-01T08:30:25.300933Z" } }, "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": "a5d14414", "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": "76f00f80", "metadata": { "execution": { "iopub.execute_input": "2026-07-01T08:30:25.303054Z", "iopub.status.busy": "2026-07-01T08:30:25.302893Z", "iopub.status.idle": "2026-07-01T08:30:25.308466Z", "shell.execute_reply": "2026-07-01T08:30:25.307975Z" } }, "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": "20f5500e", "metadata": { "execution": { "iopub.execute_input": "2026-07-01T08:30:25.310183Z", "iopub.status.busy": "2026-07-01T08:30:25.309991Z", "iopub.status.idle": "2026-07-01T08:30:25.340024Z", "shell.execute_reply": "2026-07-01T08:30:25.339516Z" } }, "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": "8259bbf0", "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": "b012376e", "metadata": { "execution": { "iopub.execute_input": "2026-07-01T08:30:25.349502Z", "iopub.status.busy": "2026-07-01T08:30:25.349264Z", "iopub.status.idle": "2026-07-01T08:30:25.351741Z", "shell.execute_reply": "2026-07-01T08:30:25.351307Z" } }, "outputs": [], "source": [ "# import IPython.display as ipd\n", "# ipd.display(ipd.Javascript(\n", "# f\"\"\"{vis.network_wrapper}.network.destroy()\"\"\"))" ] }, { "cell_type": "markdown", "id": "60cc48b7", "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": "41bda866", "metadata": { "execution": { "iopub.execute_input": "2026-07-01T08:30:25.353466Z", "iopub.status.busy": "2026-07-01T08:30:25.353286Z", "iopub.status.idle": "2026-07-01T08:30:25.382302Z", "shell.execute_reply": "2026-07-01T08:30:25.381774Z" } }, "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": "9b9c0260", "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": "c8713cbe", "metadata": { "execution": { "iopub.execute_input": "2026-07-01T08:30:25.391945Z", "iopub.status.busy": "2026-07-01T08:30:25.391701Z", "iopub.status.idle": "2026-07-01T08:30:25.806322Z", "shell.execute_reply": "2026-07-01T08:30:25.805775Z" } }, "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": { "02f6f099944a4728b219e7601a09220e": { "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 } }, "30afcd51aa174b218f9e4f0ecf0efa7f": { "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_4ef4f792766d4e91bc1f693fd3efe3a5", "msg_id": "", "outputs": [], "tabbable": null, "tooltip": null } }, "4ef4f792766d4e91bc1f693fd3efe3a5": { "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 } }, "66618f82e98d4dcc90f3ee025bf1bb1c": { "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_b497dc6fb7134793918b0b080bb7e694", "msg_id": "", "outputs": [], "tabbable": null, "tooltip": null } }, "8eb4f47522224033a3330bef1075297b": { "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_aca0cfeb965d4d489a4d590721018455", "msg_id": "", "outputs": [], "tabbable": null, "tooltip": null } }, "a4c499f617aa46aa910d953a67c5293b": { "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_02f6f099944a4728b219e7601a09220e", "msg_id": "", "outputs": [], "tabbable": null, "tooltip": null } }, "aca0cfeb965d4d489a4d590721018455": { "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 } }, "afbfc0b4cfd34348b728cef153c2b140": { "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 } }, "b497dc6fb7134793918b0b080bb7e694": { "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 } }, "d43c38ece2554c1c904a7f7d9bec860e": { "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_afbfc0b4cfd34348b728cef153c2b140", "msg_id": "", "outputs": [], "tabbable": null, "tooltip": null } }, "fbd0caa069764756b21812c9f39a5900": { "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_fd1a086ad5d34423baf057c4ce1d5467", "msg_id": "", "outputs": [], "tabbable": null, "tooltip": null } }, "fd1a086ad5d34423baf057c4ce1d5467": { "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 }