반응형
In [1]:
from graphviz import Digraph
dot = Digraph(comment='Node Shapes Example')
# 다양한 모양의 노드 추가
dot.node('A', 'Box', shape='box')
dot.node('B', 'Ellipse', shape='ellipse')
dot.node('C', 'Circle', shape='circle')
dot.node('D', 'Polygon', shape='polygon')
dot.node('E', '{ Field1 | Field2 }', shape='record')
dot.node('F', 'Text Only', shape='plaintext')
dot.node('G', 'Diamond', shape='diamond')
dot.node('H', 'Triangle', shape='triangle')
# 화살표(에지) 추가
dot.edges(['AB', 'BC', 'CD',
'DE', 'EF', 'FG',
'GH'])
# 이미지로 표시
dot
Out[1]:
순서도 가로로 그리기¶
Digraph
객체를 선언할때graph_attr={'rankdir': 'LR'}
옵션을 설정합니다.
In [2]:
from graphviz import Digraph
# Digraph 객체를 선언할때 graph_attr={'rankdir': 'LR'} 옵션을 설정합니다.
dot = Digraph(comment='Node Shapes Example', graph_attr={'rankdir': 'LR'})
# 다양한 모양의 노드 추가
dot.node('A', 'Box', shape='box')
dot.node('B', 'Ellipse', shape='ellipse')
dot.node('C', 'Circle', shape='circle')
dot.node('D', 'Polygon', shape='polygon')
dot.node('E', 'Field1 | Field2', shape='record')
dot.node('F', 'Text Only', shape='plaintext')
dot.node('G', 'Diamond', shape='diamond')
dot.node('H', 'Triangle', shape='triangle')
# 화살표(에지) 추가
dot.edges(['AB', 'BC', 'CD',
'DE', 'EF', 'FG',
'GH'])
# 이미지로 표시
dot
Out[2]:
순서도에 조건 붙이기 예시 1¶
- 순서도는 단방향이 아닌 여러 방향으로 그릴 수 있으며,
edges
가 아닌edge
메서드를 활용한 조건 추가하었습니다.
In [3]:
from graphviz import Digraph
dot = Digraph(comment='Node Shapes Example')
# 다양한 모양의 노드 추가
dot.node('A', 'Box', shape='box')
dot.node('B', 'Ellipse', shape='ellipse')
dot.node('C', 'Circle', shape='circle')
dot.node('D', 'Polygon', shape='polygon')
dot.node('E', '{ Field1 | Field2 }', shape='record')
dot.node('F', 'Text Only', shape='plaintext')
# 화살표(에지) 추가
dot.edges(['AB', 'BC', 'CD'])
# edge 메서드를 활용한 조건 추가
dot.edge('D', 'E', label="False")
dot.edge('D', 'F', label="True")
# 이미지로 표시
dot
Out[3]:
순서도에 조건 붙이기 예시 2¶
In [4]:
from graphviz import Digraph
dot = Digraph(comment='Node Shapes Example')
# 다양한 모양의 노드 추가
dot.node('A', 'Box', shape='box')
dot.node('B', 'Ellipse', shape='ellipse')
dot.node('C', 'Circle', shape='circle')
dot.node('D', 'Polygon', shape='polygon')
dot.node('E', '{ Field1 | Field2 }', shape='record')
# 화살표(에지) 추가
dot.edges(['AB', 'BC', 'CD'])
# edge 메서드를 활용한 조건 추가
dot.edge('D', 'A', label="False")
dot.edge('D', 'E', label="True")
# 이미지로 표시
dot
Out[4]:
순서도를 pdf 로 저장 하기¶
- 순서도는 자기가 원하는 형태로 저장할 수 있으며,
Digraph
객체를 선언할때format='pdf'
옵션을 설정합니다.
In [5]:
from graphviz import Digraph
# Digraph 객체를 선언할때 format='pdf' 옵션을 설정합니다.
dot = Digraph(comment='Node Shapes Example', graph_attr={'rankdir': 'LR'}, format='pdf')
# 다양한 모양의 노드 추가
dot.node('A', 'Box', shape='box')
dot.node('B', 'Ellipse', shape='ellipse')
dot.node('C', 'Circle', shape='circle')
dot.node('D', 'Polygon', shape='polygon')
dot.node('E', '{ Field1 | Field2 }', shape='record')
dot.node('F', 'Text Only', shape='plaintext')
dot.node('G', 'Diamond', shape='diamond')
dot.node('H', 'Triangle', shape='triangle')
# 화살표(에지) 추가
dot.edges(['AB', 'BC', 'CD',
'DE', 'EF', 'FG',
'GH'])
# 이미지로 저장하고 표시
path = "sample"
dot.render(path)
Out[5]:
'sample.pdf'
순서도를 png 로 저장 하기¶
Digraph
객체를 선언할때format='png'
옵션을 설정합니다.
In [8]:
from graphviz import Digraph
# Digraph 객체를 선언할때 format='png' 옵션을 설정합니다.
dot = Digraph(comment='Node Shapes Example', graph_attr={'rankdir': 'LR'}, format='png')
# 다양한 모양의 노드 추가
dot.node('A', 'Box', shape='box')
dot.node('B', 'Ellipse', shape='ellipse')
dot.node('C', 'Circle', shape='circle')
dot.node('D', 'Polygon', shape='polygon')
dot.node('E', '{ Field1 | Field2 }', shape='record')
dot.node('F', 'Text Only', shape='plaintext')
dot.node('G', 'Diamond', shape='diamond')
dot.node('H', 'Triangle', shape='triangle')
# 화살표(에지) 추가
dot.edges(['AB', 'BC', 'CD',
'DE', 'EF', 'FG',
'GH'])
# 이미지로 저장하고 표시
path = "sample"
dot.render(path)
Out[8]:
'sample.png'
반응형
'python' 카테고리의 다른 글
파이썬으로 점점 늘어났다 줄어드는 숫자 랜덤하게 만들기 (0) | 2024.03.19 |
---|---|
SyntaxError: '(' was never closed (0) | 2024.03.07 |
파이썬 기본 그래프 그리기(matplotlib, plotly) (0) | 2024.02.27 |
파이썬 자주쓰는 정규식 1 (0) | 2024.02.21 |
파이썬 chat gpt api key 빨리 적용하기 (0) | 2024.02.17 |
댓글