1
0
Fork 0
mirror of https://github.com/Findus23/rebound-collisions.git synced 2024-09-19 15:53:48 +02:00
rebound-collisions/graph.py
2021-01-04 12:25:13 +01:00

25 lines
761 B
Python

from graphviz import Digraph
from extradata import ExtraData, CollisionMeta
from utils import filename_from_argv
fn = filename_from_argv()
ed = ExtraData.load(fn.with_suffix(".extra.json"))
dot = Digraph(comment='Collisions')
for merged, originals in ed.tree._tree.items():
first_parent = True
for parent in originals["parents"]:
meta: CollisionMeta = originals["meta"]
water_ret = meta.water_retention
mass_ret = meta.mass_retention
if first_parent:
label = f"{water_ret:.2f}/{mass_ret:.2f}"
first_parent = False
else:
label = None
dot.edge(str(parent), str(merged), xlabel=label)
# dot.engine = 'neato'
dot.render(fn.with_suffix(".gv"), view=True, format="svg")