Modularize Graph Plotting

The draw_graph plot function has grown way to big and has to be modularized somehow.

The following discussion from !145 (merged) should be addressed:

  • @jeremiastraub started a discussion: (+5 comments)

    Ok, this is mostly ready. Remaining points:

    • The point "allow setting suptitle" (from #199 (closed)) is not yet resolved. It's not exactly clear to me how this should look like (see #199 (closed)).
    • There are changes to the configuration layout that might cause existing configurations to fail (listed in the MR description). They should perhaps be communicated to the people using this function.

    I think all current changes are ready for being reviewed, regardless of the points above. @blsqr, do you have the time and would you be willing to do that? 😊 Things to look out for:

    • Is the docstring self-explanatory?
    • Is the configuration structure intuitive?

Proposal

  • Implement a GraphPlot class that manages the graph plotting.
  • As follow-up from #291 (closed): Stretch goal: if supplying not a single graph but an object-dtype xr.DataArray filled with nx.Graphs, perform an animation over each graph in that array. We could restrict this to 1D, but it would be nice if it is not restricted to the time dimension.
Edited by Utopia Developers