Skip to content

feat: add visualization of the abstract MFA structure - #180

Open
tobiasdiez wants to merge 2 commits into
mainfrom
plot_mfa
Open

feat: add visualization of the abstract MFA structure#180
tobiasdiez wants to merge 2 commits into
mainfrom
plot_mfa

Conversation

@tobiasdiez

@tobiasdiez tobiasdiez commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Purpose of this PR

Add two ProcessGraphPlotter classes (using either plotly or graphviz) for visualizing MFA system structures.

Also updated some of the documentation/examples to demonstrate the new plotting capabilities.

A few examples (processes are in blue, stocks in green, flows as edges):

  • Example 1 (plotly)
image - Example 2 (plotly) image - Example 2 (graphviz) image - remind-mfa (steel with graphviz) Screenshot_2026-07-23_13-02-31

Disclaimer: the layout algorithm for plotly was mostly created using Claude

Checklist:

  • I have used the Conventional Commits format for my PR title (and commit messages)
  • I have updated the in-code documentation of all changed classes and functions
  • I have added in-code documentation and type hints to all new classes and functions
  • I have adapted the howtos
  • I have adapted the examples

tobiasdiez and others added 2 commits July 23, 2026 12:52
Add two ProcessGraphPlotter classes (using either plotly or graphviz) for visualizing MFA system structures.

Also updated some of the documentation/examples to demonstrate the new plotting capabilities.

@JakobBD JakobBD left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's a great feature!

Is there a way in either of the two to pass prescribed x and y positions of the nodes?
Best would be minimal grid integers, i.e. (0,1) instead of sth like (354,762).
Should be optional, of course.

Also, in graphviz, is there a way to have uniform node sizes?

Regardless, the feature is already great and good to merge!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants