코피페로 시도할 수 있다! Python의 networkx로 멋진 네트워크 다이어그램을 그려 보자.

겨울 방학은 멋진 네트워크 다이어그램을 그릴 수있는 networkx로 네트워크 다이어그램을 그려 보자.



여러분은 좋은 겨울 방학을 보내고 있습니까? 우리 회사는 28부터 5일까지 휴가를 받고 정말 쥐에게 감사하고 있는 나날입니다.

그렇지만 기술자는 이런 때야말로 맥 난민을 하고 자기의 기술을 연마시켜야 한다고 생각합니다.

오늘은 networkx라는 네트워크 다이어그램이 그릴 수 있는 라이브러리를 소개합니다.
  • 이번 워크의 소요시간:10분 정도
  • 준비하는 것
  • Python 3.x
  • jupyterhub (pandas와 matplotlib를 설치하십시오)


  • 설치


    (venv)$pip install networkx
    

    먼저 데이터를 pandas로 데이터를로드합니다.


    import pandas as pd
    df_links = pd.read_csv('https://microlearning.site/pydata/ch8/links.csv')
    df_links.head(20)
    

    다음과 같은 테이블이 로드되었는지 확인하십시오. 관계가 있는 네트워크끼리는 1이 되어 있습니다.



    드디어 네트워크 그림 그리기



    네트워크 다이어그램의 그리기는 다음과 같습니다.
    import networkx as nx
    import matplotlib.pyplot as plt
    G = nx.Graph()
    NUM = len(df_links.index)
    for i in range(1,NUM+1):
        node_no = df_links.columns[i].strip("Node")#「Node」の文字を除去
        G.add_node(str(node_no))
    
    for i in range(NUM):
        for j in range(NUM):
            if df_links.iloc[i][j] == 1:
                G.add_edge(str(i),str(j))
    
    nx.draw_networkx(G,nide_color="k",edge_color="k",font_color="w")
    plt.show()
    

    무엇을하고 있는지 설명하고 싶다면 먼저 노드를 추가하십시오.
    표의 노드끼리가 1이 되어 있는 부분(관계하고 있는 부분)을 선으로 연결하고 있습니다.

    그러면 다음과 같은 네트워크 다이어그램이 표시됩니다 (매번 표시는 다릅니다)
    각 노드와 관계가 짙은 번호가 중심에 와 있습니다. (4, 5 등)



    수고하셨습니다. 실행할 때마다 모양이 다릅니다. 시도해보십시오.

    업데이트 내역


  • 2020/1/1 신규 작성
  • 좋은 웹페이지 즐겨찾기