Open phcerdan opened 4 years ago
First approach has been using networkx built-in capabilities of drawing. It uses pygraphviz for graphviz layouts. There is another physical layout with a GPLv2 license (forcelayout?), but I don't think it is useful for the case here.
The challenging part is to find an appealing layout for the different cases:
[x] at generation N
Using expressions.atoms
and expressions.generation
.
Done using wolfram_model.vis.nx.grapH_at_generation
. See tests: https://github.com/phcerdan/wolfram_model/blob/99856fa6af09ffcf357a5cba6303cde8abb92e58/python/tests/vis/test_vis.py#L24-L32
[ ] evolution over generations
It would be nice to keep fixed the position of nodes over future generation, where the automatic algorithm (dot
for example) might otherwise reorder it.
[ ] causal graphs
We will have to use expression.creator_event
and expression.destructor_event
Candidates: