| 4 | |
| 5 | |
| 6 | def plot(genotype, filename): |
| 7 | g = Digraph( |
| 8 | format='pdf', |
| 9 | edge_attr=dict(fontsize='20', fontname="times"), |
| 10 | node_attr=dict(style='filled', shape='rect', align='center', fontsize='20', height='0.5', width='0.5', penwidth='2', fontname="times"), |
| 11 | engine='dot') |
| 12 | g.body.extend(['rankdir=LR']) |
| 13 | |
| 14 | g.node("x_{t}", fillcolor='darkseagreen2') |
| 15 | g.node("h_{t-1}", fillcolor='darkseagreen2') |
| 16 | g.node("0", fillcolor='lightblue') |
| 17 | g.edge("x_{t}", "0", fillcolor="gray") |
| 18 | g.edge("h_{t-1}", "0", fillcolor="gray") |
| 19 | steps = len(genotype) |
| 20 | |
| 21 | for i in range(1, steps + 1): |
| 22 | g.node(str(i), fillcolor='lightblue') |
| 23 | |
| 24 | for i, (op, j) in enumerate(genotype): |
| 25 | g.edge(str(j), str(i + 1), label=op, fillcolor="gray") |
| 26 | |
| 27 | g.node("h_{t}", fillcolor='palegoldenrod') |
| 28 | for i in range(1, steps + 1): |
| 29 | g.edge(str(i), "h_{t}", fillcolor="gray") |
| 30 | |
| 31 | g.render(filename, view=True) |
| 32 | |
| 33 | |
| 34 | if __name__ == '__main__': |