블로그 이미지
다엄
잘해야지

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

Notice

    'Programming/Python'에 해당되는 글 6

    1. 2010.07.13 Python networkx를 이용한 그래프(자료구조) 그리기
    2010. 7. 13. 00:42 Programming/Python

    드디어 성공!!
    python으로 자료구조의 그래프를 그리는 툴을 발견했다...ㅠ
    그 tool은 바로 networkx 인데, 사실 이게 가장 추천도가 높아서 찾기쉬웠으나 나의 착각으로 이것만 제외하고 살폈더랬다..

    networkx를 사용하려면 이것저것 많이 설치해야 한다.( 무료 툴의 단점;)
    1. 우선 파이썬 버전 2.4, 2.5, 2.6 이어야 한다. 내가 설치한 건 2.6버전.

    2. easy_install은 설치해도 되고 안해도 되나, 간단하기도 하고 나중에 한번 더 쓰게 되므로 설치한다.   방법은 setuptools 에 가서 자신의 파이썬 버전에 맞는 exe파일(나는 윈도우에서 사용할 것이므로)을 받아서 설치하면 끝.

    3. 이제 본격적으로 networkx를 설치한다. cmd 콘솔 창에서
    easy_install networkx

    하면 networkx의 설치는 끝이다. 정말 쉽지 아니한가.

    4. networkx 는 그래프를 그려서 시각화한 걸 보려고 설치한 것이므로, 몇 가지 패키지를 추가로 더 설치해준다. 먼저 matplotlib 를 설치해보자.
    matplotlib는 numpy를 필요로 하므로 http://sourceforge.net/projects/numpy/files/NumPy/ 여기에서 numpy를 먼저 받아서 설치한다. 설치 후 test 방법은 파이썬 IDE에서 다음과 같이 수행하면 된다.
    import numpy
    print numpy.__version__


    windows 사용자는 numpy와 python만 설치하면 matplotlib를 사용할 수 있으나, 다른 OS 사용자는 두 개 정도를 더 설치해야 한다. 자세한 내용은 여기서 확인.

    numpy를 설치했으면 matplotlib를 설치하자.

    http://sourceforge.net/projects/matplotlib/files/ 이걸 다운 받으면 된다.
    matplotlib 설치 후에 세 가지 라이브러리를 추가로 다운받아야 한다.

    먼저 pytz : 콘솔에서 easy_install --upgrade pytz 하면 설치 끝.
    두 번째 Agg: http://antigrain.com/download/index.html 여기에서 OS에 맞게 다운받자.
    세 번째 dateutil : http://labix.org/python-dateutil#head-2f49784d6b27bae60cde1cff6a535663cf87497b 여기서 다운 받아 setup.py를 intall한다.


    5. 지금까지 networkx의 패키지가 잘 설치되었는지 확인하는 테스트를 해보자.
    근데 테스트를 하기 위해서 nose라는 프로그램을 설치해야 한다. 
    설치 방법은 간단하다. easy_install nose 하면 끝.
    파이썬 IDE에서 아래 코드를 실행해본다.
    import networkx
    network.test()

    에러가 나는지는 확실히 모르겠다. 에러 세 개 쯤은 패키지가 없어서 그런 것이므로 설치는 제대로 됐다고 생각해도 된다.

    6. 마지막으로 sample 코드 돌리기
    http://networkx.lanl.gov/examples/drawing/weighted_graph.html 여기에서 소스를 긁어 실행해보면 위와 같은 그림이 나온다.


    정말 많은 것을 설치해야 하는 툴이다.. 아직 코드를 많이 안돌려봐서 얼마나 좋은진 모르겠지만..
    이래서 상용이 좋은 거구나.. 하는 생각이 새삼든다-ㅅ-...
    posted by 다엄
    prev 1 2 3 4 5 6 next