Post

(python) graph visualization

graph

  • networkxanaconda에 포함되어 있음. 사용법도 간단하지만 룩이 구리고 pure-python implementation이라 속도가 굉장히 느리다.
  • graphviz 논문에 나올법한 상당히 구식 룩이나 쓰기 편함. 활용도가 높음. 사용하기 위해서는graphviz 라는 프로그램 자체와 이를 python과 연결해주는 라이브러리 둘 다 설치해야 한다. * graphviz 설치하고 bin폴더 환경변수에 등록해주어야 함. 라이브러리로는 graphviz, pygraphviz, graphviz-python이 있는데 그냥 graphviz가 제일 무난하고 대중적인 듯. 그리고 이거 사용할 때 아주 주의 해야 할 것이 ":"가 node나 edge에 들어가 있으면 그 앞까지만 읽어버리기 때문에 이상하게 동작한다. 이런 류의 에러는 디버깅하다보면 정말 화가난다… 그래서 ":"는 노드나 엣지에 입력하는 문자열에 포함시키지 않는 것이 좋다.
  • graph-tool 속도 면에서 제일 나은 것 같은데 windows에서 사용할 수 없다.
  • igraph implementated in C. networkx를 사용하느니 속도 면에서나, 기능 면에서나 이게 더 나은 것 같다.

visualization

그래프 만들어서 그리는건 위 라이브러리를 이용하고 그린 그래프를 띄워주는 인터페이스로 주로 matplotlib.pyplot을 사용하는데 이러면 못생겼다. 단순 2차원에 hover effect도 없고…

  • matplotlib.pyplot
  • Plotly
  • seaborn
  • Bokeh
  • Vincent
  • Vega
  • Lightning
  • toyplot
  • bqplot
3D
  • Mayavi #VTK 기반
  • Vispy #OpenGL 기반
This post is licensed under CC BY 4.0 by the author.