Live dashboard implemented using anywidget and Cytoscape.js #850
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is an alternative to #830 using anywidget and re-using a lot of the cytoscape.js code. (I'd like to thank @keewis for telling me about anywidget.)
Here are some of the differences I found in implementing the two:
cytoscapejavascript object to work around them - such as being able to callreset()(to reset the graph layout). Anywidget has a more direct relationship with the javascript library - which means you have to write some javascript yourself, but you get more control (in this case adding a reset button was trivial).Here's a screen recording of the widget in a Jupyter notebook (compare to #821 (comment)):
Screen.Recording.2025-12-09.at.10.13.33.mov
I also added an option to produce a (static) visualisation of the plan using cytoscape.js by setting
engine="cytoscape"(which just uses aPlanWidgetinternally):Fixes #821