0

I have a problem. I want to draw a proces unfortunately it does not look good as I want. Is there an option to make the arrows more angular, create a box with and add messages to edges or nodes.

Is there an option to redesign the process with PyDot that it looks more like the image below?

enter image description here

import pydot
from IPython.display import SVG

graph = pydot.Dot(graph_type='digraph', rankdir='LR')

#start_node = pydot.Node("Start", shape="circle")
#end_node = pydot.Node("End", shape="doublecircle")
task_node1 = pydot.Node("Task1", shape="box", )
task_node2 = pydot.Node("Task2", shape="box")
task_node3 = pydot.Node("Task3", shape="box")
task_node4 = pydot.Node("Task4", shape="box")
task_node5 = pydot.Node("Task5", shape="box")
task_node6 = pydot.Node("Task6", shape="box")
task_node7 = pydot.Node("Task7", shape="box")
task_node8 = pydot.Node("Task8", shape="box")
task_node9 = pydot.Node("Task9", shape="box")
task_node10 = pydot.Node("Task10", shape="box")
task_node11 = pydot.Node("Task11", shape="box")

#graph.add_node(start_node)
#graph.add_node(end_node)
graph.add_node(task_node1)
graph.add_node(task_node2)
graph.add_node(task_node3)
graph.add_node(task_node4)
graph.add_node(task_node5)
graph.add_node(task_node6)
graph.add_node(task_node7)
graph.add_node(task_node8)
graph.add_node(task_node9)
graph.add_node(task_node10)
graph.add_node(task_node11)

task1_to_task2_edge = pydot.Edge("Task1", "Task2")
task2_to_task3_edge = pydot.Edge("Task2", "Task3")
task2_to_task4_edge = pydot.Edge("Task2", "Task4")
task3_to_task4_edge = pydot.Edge("Task3", "Task4")
task3_to_task5_edge = pydot.Edge("Task3", "Task5")
task4_to_task5_edge = pydot.Edge("Task4", "Task5")
task5_to_task6_edge = pydot.Edge("Task5", "Task6")
task6_to_task7_edge = pydot.Edge("Task6", "Task7")
task7_to_task8_edge = pydot.Edge("Task7", "Task8")
task8_to_task7_edge = pydot.Edge("Task8", "Task7")
task8_to_task9_edge = pydot.Edge("Task8", "Task9")
task9_to_task10_edge = pydot.Edge("Task9", "Task10")
task10_to_task1_edge = pydot.Edge("Task10", "Task1")
task3_to_task11_edge = pydot.Edge("Task3", "Task11")
task11_to_task1_edge = pydot.Edge("Task11", "Task1")

graph.add_edge(task1_to_task2_edge)
graph.add_edge(task2_to_task3_edge)
graph.add_edge(task2_to_task4_edge)
graph.add_edge(task3_to_task4_edge)
graph.add_edge(task3_to_task5_edge)
graph.add_edge(task4_to_task5_edge)
graph.add_edge(task5_to_task6_edge)
graph.add_edge(task6_to_task7_edge)
graph.add_edge(task7_to_task8_edge)
graph.add_edge(task8_to_task7_edge)
graph.add_edge(task8_to_task9_edge)
graph.add_edge(task9_to_task10_edge)
graph.add_edge(task10_to_task1_edge)
graph.add_edge(task3_to_task11_edge)
graph.add_edge(task11_to_task1_edge)



graph.write_svg("diagram.svg")
SVG('diagram.svg')

enter image description here

Test
  • 571
  • 13
  • 32

0 Answers0