1. 학습
  2. /
  3. 강의
  4. /
  5. Python으로 시작하는 네트워크 분석

Connected

연습 문제

행렬 플롯으로 시각화하기

이제 첫 번째 "고급" 그래프 시각화 방법인 행렬 플롯을 시도해 볼 차례예요. 이를 위해 nxviz는 matrix() 함수를 제공합니다. 이 함수는 nxviz의 상위 수준 API 함수들과 마찬가지로 matplotlib의 axes 객체를 반환하며, plt.show()로 화면에 표시할 수 있어요.

nxviz는 그래프를 합리적으로 시각화하기 위한 패키지입니다. 내부적으로 matrix 함수는 nx.to_numpy_matrix(G)를 사용해 그래프의 행렬 형태를 반환합니다. 여기서 각 노드는 하나의 열이자 행이 되며, 두 노드 사이의 엣지는 값 1로 표시돼요. 다만 이 과정에서 weight 메타데이터만 유지되고, 다른 메타데이터는 모두 사라집니다. 이는 assert 문으로 확인해 볼 거예요.

대응되는 함수 nx.from_numpy_matrix(A)를 사용하면 NumPy 행렬로부터 빠르게 그래프를 만들 수 있습니다. 기본 그래프 타입은 Graph()이며, DiGraph()로 만들고 싶다면 (nx.from_numpy_matrix(A, create_using=nx.DiGraph))처럼 create_using 키워드 인자를 지정해야 해요.

마지막으로, matplotlib.pyplot과 networkx는 각각 plt, nx로 이미 임포트돼 있으며 그래프 T도 미리 로드되어 있어요. 단순화와 속도를 위해 네트워크에서 100개의 엣지만 서브샘플링했습니다.

지침

100 XP
  • nxviz에서 matrix를 임포트하세요.
  • 그래프 T를 행렬 플롯으로 그리세요. 방법은 다음과 같아요:
    • nv.matrix() 함수에 T를 인수로 넘겨, m이라는 이름의 행렬 플롯을 생성하세요.
    • plt.show()로 플롯을 표시하세요.
  • 그래프를 행렬 형식으로 변환한 다음, 그 행렬로부터 NetworkX 형태의 방향 그래프로 다시 변환하세요. 이 단계는 이미 준비되어 있어요.
  • 각 노드에서 category 메타데이터 필드가 사라졌는지 확인하세요. 이 부분도 이미 완료되어 있으니 "Submit Answer"를 눌러 결과를 확인하세요!