REP - NETWORKX - 019, JULY NetworkX 를이용한 Python 그래프가시화 Graph Visualization from Python Using NetworkX 김선영 Kim SeonYeong 부산대학교컴퓨터공학과

Similar documents
REP - networkx - 019, JULY 어 있고 Windows 계열도 지원하지만, Winodws OS의 경우 많은 버그를 가지고 있기 때문에 현재 Windows 운영 체제와 정상적으로 호환되는 패키지는 NetworkX 이다. 각 패키지의 종류와 각

Chap 6: Graphs

데이터 시각화

Chap 6: Graphs

Microsoft PowerPoint - chap01-C언어개요.pptx

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

184최종

07Á¤Ã¥¸®Æ÷Æ®-pdf¿ë

200707Á¤Ã¥¸®Æ÷Æ®_³»Áö

Chap 6: Graphs

PowerPoint 프레젠테이션

Windows 10 General Announcement v1.0-KO

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

1. 도구개요 CppUnit Testing 소개 CppUnit 는 C++ 용 testing Framework 로 Java 의 JUnit 을 C++ 로구현 C++ 언어에서사용할수있도록개발된 Open Source 프로젝트로, source code 의특정 Module 이의도

08_À±¹ÎÈ£0927

Spring Boot


Python과 함께 배우는 신호 해석 제 5 강. 복소수 연산 및 Python을 이용한 복소수 연산 (제 2 장. 복소수 기초)

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

example code are examined in this stage The low pressure pressurizer reactor trip module of the Plant Protection System was programmed as subject for

SIGIL 완벽입문

Network Security - Wired Sniffing 실습 ICNS Lab. Kyung Hee University

본보고서는 yfiles AJAX에대해소개하고, 구현을위해필요한서버 / 클라이언트의구성을알아보고자한다. 더불어간단한예제를통해어플리케이션이어떻게동작하는지소개한다. 2장은 yfiles AJAX를알기위해필요한개념에대해서술한다. 3장에서는 yfiles AJAX의서버와클라이언트가

놀이동산미아찾기시스템

WISHBONE System-on-Chip Interconnection Architecture for Portable IP Cores

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서

Microsoft PowerPoint - ch12 - Graph, Graph Algorithms

ODS-FM1

임베디드시스템설계강의자료 4 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

¿ÀǼҽº°¡À̵å1 -new

Microsoft Word - 3부A windows 환경 IVF + visual studio.doc

Artificial Intelligence: Assignment 6 Seung-Hoon Na December 15, Sarsa와 Q-learning Windy Gridworld Windy Gridworld의 원문은 다음 Sutton 교재의 연습문제

Spring Boot/JDBC JdbcTemplate/CRUD 예제

제8장 자바 GUI 프로그래밍 II

¾Æ½Ã¾ÆÀú³Î8È£-ÅëÇÕ

[Brochure] KOR_TunA

Contributors: Myung Su Seok and SeokJae Yoo Last Update: 09/25/ Introduction 2015년 8월현재전자기학분야에서가장많이쓰이고있는 simulation software는다음과같은알고리즘을사용하고있다.

Open Cloud Engine Open Source Big Data Platform Flamingo Project Open Cloud Engine Flamingo Project Leader 김병곤

PDF_Compass_32호-v3.pdf

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

Let G = (V, E) be a connected, undirected graph with a real-valued weight function w defined on E. Let A be a set of E, possibly empty, that is includ

소개 Mac OS X (10.9, 10.10, 10.11, 10.12) 와 OKI 프린터호환성 Mac OS X 를사용하는 PC 에 OKI 프린터및복합기 (MFP) 제품을연결하여사용할때, 최고의성능을발휘할수있도록하는것이 OKI 의목 표입니다. 아래의문서는 OKI 프린터및

04_오픈지엘API.key

Secure Programming Lecture1 : Introduction

PowerPoint 프레젠테이션

위해 사용된 기법에 대해 소개하고자 한다. 시각화와 자료구조를 동시에 활용하는 프로그램이 가지는 한계와 이를 극복하기 위한 시도들을 살펴봄으로서 소셜네트워크의 분석을 위한 접근 방안을 고찰해 보고자 한다. 2장에서는 실험에 사용된 인터넷 커뮤니티인 MLBPark 게시판

Deok9_Exploit Technique

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.


Windows 8에서 BioStar 1 설치하기

슬라이드 1

마지막 변경일 2018년 5월 7일 ** 이항분포와 정규분포의 관계 ** Geogebra와 수학의 시각화 책의 3.2소절 내용임. 가장 최근 파일은 링크를 누르면 받아 보실 수 있습니다.

2009방송통신산업동향.hwp

슬라이드 1

DBMS & SQL Server Installation Database Laboratory

Slide 1

PowerPoint 프레젠테이션

DBPIA-NURIMEDIA

소프트웨어공학 Tutorial #2: StarUML Eun Man Choi

Solaris Express Developer Edition

PowerPoint 프레젠테이션

11장.그래프

untitled

서 형성되는 관계에 대한 연구 [4]가 이루어지고 있다. 실제 사회에서 하나의 집단을 가지고 할 수 있는 분석 방식이 다양하듯 인터넷에서 다양한 방면의 분석이 이루어지는 것을 확인할 수 있다. 본 보고서에서는 인터넷 커뮤니티에서 사용자들이 어떠한 관계를 나타내는지에 대

PowerPoint 프레젠테이션

ALTIBASE 사용자가이드 Templete

vRealize Automation용 VMware Remote Console - VMware

PowerPoint Presentation

품질검증분야 Stack 통합 Test 결과보고서 [ The Bug Genie ]

웹개발을위한 ComponentOne 사용법 (2) 권대건 부산대학교컴퓨터공학과 Abstract 최근웹개발이활성화되면서전문가를위한여러가지 Tool 웹애플리케이션형태로제공하는경우가늘고있다. ComponentOne 은.NET 기반의 UI C

2002년 2학기 자료구조

김기남_ATDC2016_160620_[키노트].key

[로플랫]표준상품소개서_(1.042)

Splentec V-WORM Quick Installation Guide Version: 1.0 Contact Information 올리브텍 주소 : 경기도성남시분당구구미로 11 ( 포인트타운 701호 ) URL: E-M

PowerPoint 프레젠테이션

1

1. 안드로이드개발환경설정 안드로이드개발을위해선툴체인을비롯한다양한소프트웨어패키지가필요합니다 툴체인 (Cross-Compiler) 설치 안드로이드 2.2 프로요부터는소스에기본툴체인이 prebuilt 라는이름으로포함되어있지만, 리눅스 나부트로더 (U-boot)

sna-node-ties

PowerPoint 프레젠테이션

tut_modelsim(student).hwp

Microsoft PowerPoint - lecture2-opengl.ppt [호환 모드]

집합 집합 오른쪽 l 3. (1) 집합 X 의각원소에대응하는집합 Y 의원소가단하나만인대응을 라할때, 이대응 를 X 에서 Y 로의라고하고이것을기호로 X Y 와같이나타낸다. (2) 정의역과공역정의역 : X Y 에서집합 X, 공역 : X Y 에서집합 Y (3) 의개수 X Y

12-06.hwp

Microsoft Word - 임베디드월드_WindowsEmbeddedCompact7_rev

<4F E20C7C1B7CEB1D7B7A5C0BB20C0CCBFEBC7D120B5A5C0CCC5CD20BAD0BCAE20B9D720B1D7B7A1C7C120B1D7B8AEB1E F416E616C F616E645F47726

03_queue

와플-4년-2호-본문-15.ps

Journal of Educational Innovation Research 2019, Vol. 29, No. 1, pp DOI: : * Research Subject

U.Tu System Application DW Service AGENDA 1. 개요 4. 솔루션 모음 1.1. 제안의 배경 및 목적 4.1. 고객정의 DW구축에 필요한 메타정보 생성 1.2. 제품 개요 4.2. 사전 변경 관리 1.3. 제품 특장점 4.3. 부품화형

gnu-lee-oop-kor-lec10-1-chap10

슬라이드 1

<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D>

<33312D312D313220C0CCC7D1C1F820BFB0C3A2BCB12E687770>

확률 및 분포

YUM(Yellowdog Updater,Modified) : RPM 패키지가저장된서버 ( 저장소 ) 로부터원하는패키지를자동으로설치한다. : YUM 도구는 RPM 의패키지의존성문제를해결

쉽게 배우는 알고리즘 강의노트

<C6F7C6AEB6F5B1B3C0E72E687770>

PowerPoint 프레젠테이션

Transcription:

REP - NETWORKX - 019, JULY 2010 1 NetworkX 를이용한 Python 그래프가시화 Graph Visualization from Python Using NetworkX 김선영 Kim SeonYeong 부산대학교컴퓨터공학과 s.y.kim@pusan.ac.kr ABSTRACT Python 은사용하기쉬운오픈소스프로그래밍언어로, 그사용자가늘어나고있는추세이다. 그러나아직까지자료구조용그래프를설계해서시각화하기위한도구들이부족한실정으로, Windows OS 기반에서 Python 으로그래프를그릴수있는무료라이브러리와모듈에대한조사가필요하다. 현재그래프가시화소프트웨어로많이알려진 Graphviz 를 Python 에서내장하여사용하려는라이브러리들과모듈들은 Windows OS 기반에서제대로동작하지않으므로사용할수없다. 이로인해 Windows 사용자들은 Graphviz 내장이필수가아닌 Python Package 인 NetworkX 를가장일반적으로사용하고있다. 따라서본보고서에서는현재 Windows 운영체제와호환되는 Python Package 인 NetworkX 의설치방법과그사용예제에대해서알아본다. KEYWORDS Python Graph Drawing Tool, NetworkX 1 서론 Python은사용하기쉬운오픈소스프로그래밍언어로 [1], 프로토타입작성이쉽고교육용으로적합한언어이다. 그러나아직까지 Python으로자료구조를학습하기위한그래프설계및시각화도구들은충분하지못하므로, Windows OS 기반에서 Python으로그래프를그릴수있는무료라이브러리와모듈에대한조사가필요하다. 현재그래프가시화소프트웨어로많이알려진 Graphviz를 Python에서내장하여사용하려는라이브러리들과모듈들은 Windows OS 기반에서제대로동작하지않으므로사용할수없다. 이로인해 Windows 사용자들은 Graphviz 내장이필수가아닌 Python Package인 NetworkX를가장일반적으로사용하고있다. 따라서본보고서에서는현재 Windows 운영체제와호환되는 Python Package인 NetworkX의설치방법과그사용예제에대해서알아보고자한다 2 관련연구 Python으로그래프를그리기위해서여러가지무료도구들을사용할수있다. 대표적인패키지들이 PyGraphviz, Pydot, igraph, NetworkX 등이다. 그러나이들대부분은 Linux와 OSX 계열에호환되어있고 Windows 계열도지원하지만, Winodws OS의경우많은버그를가지고있기때문에현재 Windows 운영체제와정상적으로호환되는패키지는 NetworkX 이다. 각패키지의종류와각각에대한자세한내용은다음과같다.

REP - NETWORKX - 019, JULY 2010 2 1. PyGraphviz : http://networkz.lanl.gov/pygraphviz/ PyGraphviz 는 Graphviz 그래프레이아웃의 Python 용인터페이스로, PyGraphviz 로 Graphviz 그래프자료구조와레이아웃알고리즘에 Python으로접근하여그래프를생성하고편집할수있다 [2]. PyGraphviz를사용할수있는플랫폼은 Winodows, OSX, Linux이고, Windows 플랫폼에서안정화된버전은 0.99.1 버전인데, Windows에서정상적으로동작하지않는다. 2. Pydot : http://code.google.com/p/pydot/ Pydot은 Graphviz Dot 언어의 Python용인터페이스이다. Pydot은 Python으로방향을가지는그래프와방향없는그래프모두쉽게생성이가능하며, Dot 언어의모든속성을지원한다 [3]. Pydot은 Windows, OSX, Linux와호환된다고명시하고있다. 그러나현재의 Pydot 1.0.2 버전은그래프를생성하는주요함수들에버그가많고, 공식적인업그레이드가이루어지지않고있으며, 비공식패치로는여러 side-effect가수반되고있어 Windows 운영체제에서는사용하기가어렵다. 3. igraph : http://igraph.sourceforge.net/screenshots.html igraph는 Pydot과마찬가지로방향을가지는그래프와방향이없는그래프를생성하기위한무료소프트웨어패키지이다. igraph는 minumum spanning trees와같은전형적인그리프이론도포함하고, 커뮤니티구조검색과같은몇가지최신네트워크분석방법을구현하는알고리즘도포함하고있다 [4]. 그림 1 은 igraph를이용했을때생성할수있는다양한그래프레이아웃의모습이다. 호환되는운영체제로는 Windows, OSX, Linux가있으며 Python외에도 R package, Ruby, C 라이브러리등여러언어를지원한다. igraph는그래프알고리즘만을제공하므로그래프를시각화하여보기위해서는 Cairo 라이브러리와 Python을연동하는 pycairo 라이브러리가필요하다. 그러나시스템이 Cairo DLL들을찾지못하기때문에, Windows에서 pycairo 라이브러리를사용하려면추가적인개발도구세트가필요하다. 지금까지는 Visual Studio 2003 버전을사용해서개발을할경우, 구 pycairo 버전을설치하면잘동작한다는것만알려져있다. 추후 pycairo 버전이개선되어시스템이 Cairo DLL들을잘찾도록업데이트된다면 NetowrkX 보다더다양한그래프레이아웃을제공할수있으므로 igraph를사용하는것이 Python으로그래프를시각화하기에가장적합하다고할수있을것이다. 4. NetworkX : http://networkx.lanl.gov/gallery.html NetworkX는복잡한네트워크의기능과구조연구, 계산, 생성에관한 Python기반 Package이다 [5]. 그림 2 는 NetworkX를이용한다양한그래프레이아웃의모습이다. NetworkX는 Linux, OSX, Windows 운영체제와호환되며무료소프트웨어로써사용하기쉽기때문에, Python으로그래프알고리즘을사용하는사용자들에게많이알려져있다. igraph와같이 visualization 부분을포함하고있지않기때문에 matplotlib 라이브러리를사용하여 viewing 기능을제공한다. pygraphviz를내장하여그래프레이아웃을 Graphviz와같이다양한옵션을통해제공하고

REP - NETWORKX - 019, JULY 2010 3 (a) Fruchterman-Reingold Force based Layout (b) Kautz Graph with Adjacency Matrix (c) Erdős-Rényi Random Graph (d) Dendrogram (e) Fruchterman-Reingold Graph (f) Kamada-Kawai Algorithm 그림 1. igraph를이용한여러가지그래프레이아웃. NetworkX에 R package를내장하면 (d) Dendrogram, (e)fruchterman-reingold Graph 등보다더다양한그래프레이아웃을사용할수있다. 자하였으나, 앞서소개하였던이유와마찬가지로 pygraphviz를사용할수없기때문에그래프레이아웃에있어서는제한적이다. 그러나정상적으로잘동작하고버그도지속적으로수정되는등업데이트가잘이루어지므로현재 Python으로그래프를그리기에는가장적합한패키지가 NetworkX라고할수있다. 3 NetworkX 의기능소개및사용예 3.1 NetworkX 의특징 NetworkX는복잡한네트워크의기능, 구조와역학의생성, 계산과연구를위한 Python package로, 주요특징은다음과같다. 1. 표준그래프이론과통계물리학기능 2. applications, disciplines, platforms 사이에서네트워크알고리즘의쉬운변경

REP - NETWORK X - 019, JULY 2010 4 (a) 이항확률그래프에서의 컴포넌트 연결 출현 일러스트레이트 (b) Circular Tree (c) Random Geometric Graph (e) Grid (f) miles graph (d) Atlas of all graphs of 6 nodes or less 그림 2. NetworkX 를 이용한 다양한 그래프 레이아웃 3. 많은 전형적인 그래프와 합성 네트워크 지원 4. 시계열, 텍스트, 이미지나 XML 레코드와 같은 형태로 Nodes 와 Edges 가 변할 수 있음 5. C, C++, Fortran 등의 고품질 소프트웨어의 기존 코드를 잘 활용함 6. Open source 임 3.2 NetworkX 의 설치 Networkx 는 Python 2.4, 2.5, 2.6 버전과 호환되고 Windows 운영 체제에서의 설치 방법은 다음과 같다. 1. Python 2.6 버전을 설치한다. Python 2.4, 2.5 버전도 NetworkX 에서 잘 동작하나 이후 그래프 알고리즘을 시각화하는 모듈이 이 버전을 지원하지 않는다. 적합하지 않은 버전을 설치하면 예 제가 실행되지 않는다.

REP - NETWORKX - 019, JULY 2010 5 2. NetworkX 파일을받아설치한다. 콘솔창에서 Python networkx install 를입력하여완료할수있다. easy install을먼저설치했을경우, 콘솔창에서 networkx install 을입력함으로써간단하게설치할수도있다. 3. Networkx는그래프알고리즘을조작하고생성하는도구로, 이자체로는그래프를가시화하여확인할수없다. 따라서시각화패키지인 Matplotlib를추가로설치하여그래프를볼수있도록한다. Matplotlib는몇가지라이브러리들을필요로하므로이를함께설치한다. (a) Numpy 라이브러리설치 (b) Matplotlib 라이브러리설치 (c) pytz 설치 (d) Agg 설치 (e) dateutil 설치 4. 지금까지설치한 NetworkX 패키지가잘설치되었는지확인하기위해서 Testing 프로그램인 nose 를설치한다. 그리고 Python IDLE 에서 import networkx; networkx.test() 코드를수행함으로써설치를마무리한다. 3.3 NetworkX 의사용예제 NetworkX 를이용한간단한그래프예제를세가지살펴본다. 먼저단순한 node 와 edge 를생성하는 코드는그림 3 과같다. 그림 3. Node 6 개와 Edge 6 개로구성한간단한그래프 1. add edge : NetworkX 는여러가지함수를통해 node 와 edge 를생성할수있는데, 가장많이

REP - NETWORKX - 019, JULY 2010 6 사용하는함수가 add edge 함수이다. 이를통해 edge를생성하고 node를간접적으로생성할수있다. 2. draw network labels : node에레이블을단다. 3. draw network edge lables : edge에레이블을다는함수이다. 4. draw networkx nodes : 그래프에 node를추가하는함수로, node의타입이나색상등의속성을지정할수있다. 5. draw netwrkx edges : 그래프에 edge를추가하는함수로, edge의타입이나색상등의속성을지정할수있다. 그림 3 의실행결과는다음그림 4 과같다. node의색상은붉은색이고각각레이블이달려있으며, edge는실선, 점선, dotted로나누어지고그두께또한지정한바와같이나타났음을확인할수있다. 그림 4. 그림 3 의실행결과. Node 6개와 Edge 6개가생성된것을확인할수있다. 그림 4은 node와 edge의위치가정해져있는레이아웃을사용하지않기때문에몇가지레이아웃을사용하여그래프형태를바꿀수있다. NetworkX에서기본적으로제공하는그래프레이아웃의종류는 5가지로, shell, random, circular, spectral, spring 레이아웃이그것들이다. 그림 4 의그래프는 shell layout을적용한그래프이다. 그외의기본레이아웃을적용한그래프는그림 5와같다. NetworkX 에서제공하는기본그래프레이아웃외에 R package 등을설치하여 Fruchterman-Reingold Layout 등의더많은그래프레이아웃을사용할수도있다. 예제 1 에서는 node 의위치를사용자가일일이지정하지않아도레이아웃을통해적절히배치되 었다. 예제 2 에서는각 node 의위치를사용자가지정할수있다. 자세한코드는아래그림 6 과같다.

REP - NETWORKX - 019, JULY 2010 7 (a) Random Layout (b) Spring Layout (c) Spectral Layout (d) Circular Layout 그림 5. NetworkX 에서기본적으로제공하는레이아웃을적용한그래프. Shell Layout 을적용한그래프는그림 4와같다. 다음그림 7 은그림 6 를실행한결과이다. 각 node가지정한좌표값대로배열되었음을확인할수있다. 마지막으로방향성그래프예제에대해서살펴보겠다. NetworkX 에서는화살표가꺽은모양이아니라굵은선으로표시한다. 그래고방향성그래프를그리기위해서는지금까지의예제처럼 Graph 를만드는것이아니라 DiGraph를생성하여방향성그래프를그리기위한초석을만들어두어야한다. DiGraph로그래프형태를지정하였다하더라도추후 to undirected 함수를통해방향이없는그래프를생성할수도있다. 1. add path : Graph에서는 add edge 였으나, DiGraph에서방향성있는 edge를생성하기위해서는이함수를사용해야한다. 첫번째인자에서두번째인자방향으로화살표가생성된다. 그림 9 은그림 8 을실행한결과이다. 각 node를잇는 edge 중파란색굵은선이화살표를나타낸다. 2와 4 node의경우 2에서 4 방향으로화살표가생성되어, 제수가나눌수있는피제수를바르게선택했음을확인할수있다. NetworkX로그래프를그리고자할때 node와 edge를식별할수있는범위가어떻게되는지확인해보기위해서그림 8의노드를 10, 30, 50, 100, 500, 1000개로늘려그래프를생성하였다. 결과는

REP - NETWORKX - 019, JULY 2010 8 그림 6. node 위치지정해서그리기 그림 7. 그림 6 를실행한결과. house graph 로 node 가지정한위치에배치되었음을 확인할수있다. 그림 10 과같다. 그림 10를통해 node가 100개를초과하면사실상그래프를식별하기가불가능하다고볼수있다. 따라서 NetowkrX로그래프를생성할때사용가능한 node의수는 50개를초과하지않는것이바람직하다고여겨진다. 4 결론 본보고서에서는 Python 으로자료구조그래프를그리는무료패키지, 라이브러리와모듈에대해서 조사하고그중현재사용하기가장적합한 NetworkX 에대해서그기능과설치방법, 예제를살펴 보았다. 여러가지라이브러리와패키지가존재하나 Windows 운영체제와호환가능한라이브러리는

REP - NETWORKX - 019, JULY 2010 9 그림 8. 1 부터 10 까지의숫자중, 피제수가제수로나누어질경우제수에서피제수 방향으로화살표를생성한다. 그림 9. 그림 8 를실행한결과. 제수가나눌수있는피제수방향으로파란색굵은 선, 즉화살표가생성된것을확인할수있다. NetworkX 였다. Windows에서사용할수있는다른그래프그리기패키지로는 igraph가있는데, 현재로써 igraph는그래프분석과생성을할수있으나이를시각화하는모듈인 pycairo 의버그로인해그래프를가시화할수없다는문제점이있었다. Graphviz를사용하는 pygraphviz, pydot 등은자체의버그로인해사용이불가능하였다. 따라서 Python으로그래프를그려가시화하기위한패키지로는 NetworkX가가장적합하다고할수있다. NetworkX는표준그래프이론과통계물리학기능, 많은전형적인그래프와합성네트워크를지원하므로그래프를그리기에도알맞고, tutorial과

REP - NETWORK X - 019, JULY 2010 10 (a) node 10 개 (b) node 30 개 (c) node 50 개 (d) node 100 개 (e) node 500 개 (f) 1000 개 그림 10. node 수에 따른 그래프 9 의 모습. node 가 30 개일 때는 node 와 edge label 을 모두 식별할 수 있으나, 50 개 이상의 node 를 가지는 그래프는 정확한 식별이 어렵 다. node 가 100 개를 초과하면 사실상 그래프를 인지하는 것은 불가능하다고 볼 수 있 다. reference 가 잘 정리되어 있어 NetworkX 로 그래프를 그려보지 않은 사용자도 쉽게 배울 수 있도록 지원하고 있다. 다만, 한 그래프의 노드 수가 100 개 이상일 경우, 사실상 그래프를 육안으로 식별하 기가 불가능하므로 많은 수의 노드를 사용하기에는 부적합하다고 여겨진다. 따라서 노드 수가 50 개 이하인 간단한 그래프를 그리기 위한 목적으로만 사용하는 것이 바람직하다. 참고 문헌 1. Mark Lutz, Programming Python, vol. 1, O REILLY, 1005 Gravenstein Highway North, Sebastopol, CA 95472, 2006. 2. pygraphviz, Pygraphviz, http://networkx.lanl.gov/pygraphviz/. 3. Pydot, Pydot, http://code.google.com/p/pydot/. 4. igraph, igraph, http://igraph.sourceforge.net/. 5. NetworkX, Networkx, http://networkx.lanl.gov/. 6. igraph, igraph gallery, http://igraph.sourceforge.net/screenshots.html. 7. NetworkX, Networkx gallery, http://networkx.lanl.gov/gallery.html.