2010-12-17 4 views
20

파이썬으로 인코딩 된 에지로 연결된 노드 시퀀스를 시각화합니다.파이썬에서 그래프 렌더링 (플로우 차트 시각화)

이러한 그래프 데이터를 시각화하기위한 파이썬 라이브러리를 찾고 있습니다.

중 파이썬 또는 파이썬 바인딩로 작성된 라이브러리는

(내가 Visustin의 알고 있지만, 대안을 찾고)

+0

이 하나도 좋습니다 : http://flowchart.js.org –

답변

26

Graphviz 내 생각에 가장 좋은 방법입니다 괜찮습니다.

Graphviz은 초연 그래프 렌더링/레이아웃 라이브러리입니다. 성숙하고 안정적이며 오픈 소스이며 무료입니다. 전용 플로우 챠트 나 다이어그램 패키지는 아니지만 핵심 사용 케이스 - 노드와 모서리로 구성된 객체의 효율적이고 심미적 인 렌더링 -은 분명히 플로우 차트를 포함합니다 - 특히 API가 사용자가 다양한 제약 조건을 설정할 수 있기 때문에 레이아웃에서 다양한 형식의 렌더링을 장려하십시오. 예를 들어 동일한 레벨의 모든 노드 (루트와 동일한 부모 수)가 단일 중앙 정렬 행에 렌더링되도록 할 수 있습니다.

Graphviz은 파이썬 라이브러리가 아닙니다 (C 언어로 작성되었습니다). 그러나 고품질 파이썬 바인딩을 사용할 수 있습니다.

내가 가장 익숙한 python-Graphviz 라이브러리는 pygraphviz이며 매우 우수합니다.

나머지 두 개는 pydotyapgvb입니다. 나는이 두 가지를 적어도 몇 번 사용했다. 각각은 pygraphviz보다 작습니다 (유스 케이스에 따라 이점이 될 수 있음). 또한 pygraphviz뿐만 아니라 둘 다 문서화되어 있습니다.

다행스럽게도, 이러한 파이썬 라이브러리의 세 얇은 래퍼는 graphviz를는 이상, 그래서 아무도는 가볍고 우아한 graphviz를 구문을 은폐하지합니다 ( 언어).

alt text

가 여기에 아래의 작은 "플로우 차트"를 만드는 데 사용 (은 GraphVIZ에서 ' 언어) 코드입니다 : 더그처럼

digraph { 

    node [ fill=cornflowerblue, 
      fontcolor=white, 
      shape=diamond, 
      style=filled]; 

    Step1 [ color=darkgoldenrod2, 
      fontcolor=navy, 
      label=start, 
      shape=box]; 

    Step2; 

    Step3a [ style=filled, 
      fillcolor=grey80, 
      color=grey80, 
      shape=circle, 
      fontcolor=navy]; 

    Step1 -> Step2; 
    Step1 -> Step2a; 
    Step2a -> Step3a; 
    Step3; 
    Step3a -> Step3; 
    Step3a -> Step2b; 
    Step2 -> Step2b; 
    Step2b -> Step3; 
    End [ shape=rectangle, 
     color=darkgoldenrod2, 
     fontcolor=navy]; 
    Step3 -> End [label=193]; 
} 
+1

질문은 _automatic_ generator에 관한 것 같습니다. 죄송합니다. 본 적이 없지만 자동 흐름 차트 생성에 도움이되는 것은 무엇입니까? AFAIK 차트와 멋진 UML 요소는 솔루션을 다시 생각하고 코드 이외의 관점을 얻는 데 도움이되므로 내게 자동으로 적용하려면 발 안에 찍은 것이 좋습니다. –

8

, 나는 graphviz를 제안한다.

또한 매우 간단한 dot language으로 그래프를 직접 작성할 수도 있습니다 (Graphviz 또는 다른 도구로 그릴 수 있음). 이것은 모든 모듈에서 코드의 의존성없이 pydot를 사용하는 것보다 더 가벼운 대안입니다.

+1

항상 미니멀리스트 솔루션의 팬 (도트 파일을 직접 생성), +1. – doug

1

gprof2dot.py은 프로그램의 실행 흐름을 자동으로 프로파일 링하고 시각화 할 수 있습니다. ActiveState 코드에서 reciple 578138으로 확인할 수 있습니다. 프로그램 끝 부분의 배치 파일을 확인하십시오.